home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / pb125_1.zip / MACS.ZIP / M1
Text File  |  1993-05-24  |  67KB  |  2,509 lines

  1. BANKCTLô
  2. ;TIMEBANK by Doug Vermes with modifications by Scott Brown
  3.  
  4. *TimeBank
  5. ClearScr
  6. log(--,Entered Time Bank)
  7. If (%GRAPHICS%)=(ASCII) then goto (NoGraphics)
  8. Say (&4&╔══════════════════════════════════════════════════════════════════════╗)
  9. Say (║                                                                      ║)
  10. Say (║                                                                      ║)
  11. Say (╚══════════════════════════════════════════════════════════════════════╝*)
  12. AnsiGoto (1,19)
  13. Say (&7&╔══════════════════════════════════════════════════════════════════════╗)
  14. Say (║                                                                      ║)
  15. Say (╚══════════════════════════════════════════════════════════════════════╝*)
  16. AnsiGoto (24,2)
  17. Say (&12&%BBS% Time Bank*)
  18. AnsiGoto (20,20)
  19. Say (&7&Searching for your account....*)
  20. SeekUser(/:NAME/)
  21. SetEqual(n=%NDNUMB%)
  22. Seek(bank\%var%n.DAT)
  23. ifnottrue(goto (norecord))
  24. Say (Found!)
  25. *MORE
  26. inpline(bank\%var%n.dat,1)
  27. SetEqual (t=%ARESP%)
  28. Seek (bank\maxlimit.dat)
  29. ifnottrue(goto (NoLim))
  30. InpLine (bank\maxlimit.dat,1)
  31. SetEqual (m=%ARESP%)
  32. *bak
  33. cmpval (%var%t,%var%m)
  34. ifnottrue (SetEqual (t=%var%m))
  35. AnsiGoto (25,6)
  36. Say (&15&   Account Info*)
  37. AnsiGoto (25,7)
  38. Say (&15&   ────────────*)
  39. AnsiGoto (28,8)
  40. Say (&7&Account #&12&%var%n*)
  41. AnsiGoto (25,9)
  42. Say (&7&Bank Limit: &12&%var%m&7& minutes.*)
  43. AnsiGoto (20,10)
  44. Say (&7&Current Balance: &12&%var%t&7& minutes.*)
  45. AnsiGoto (18,14)
  46. Say(&15& Time Currently Left: &14&/:LEFT/ &15&minutes.*)
  47. *MORE2
  48. AnsiGoto (5,20)
  49. Say (&15&(&4&W&15&)ithdraw Time, (&4&D&15&)eposit Time, (&4&Q&15&)uit Bank, (&4&G&15&)oodbye: *)
  50. MenuKey
  51. Say (&12&*)
  52. BigNiceSay (Q:Quit,W:Withdraw,D:Deposit,G:Goodbye)
  53. BigIf (W:Withdraw,D:Deposit,q:quit)
  54. if (%resp%)=(G) then loadmem(control\macros\bye.ctl)
  55. goto (more2)
  56.  
  57. *NoLimit
  58.  SetEqual (m=99999)
  59.  Say (&14&The maximum number of minutes allowed to be stored is %var%m.)
  60.  Say (&7&Minutes Currently Stored in Bank: &15&%var%t)
  61.  Say(&14&Time Currently Left: &15&/:LEFT/)
  62.  goto (more2)
  63.  
  64. *Deposit
  65.  AnsiGoto (5,20)
  66.  Say (                                                                  *)
  67.  AnsiGoto (18,20)
  68.  menuask (&7&Deposit How Many Minutes? *)
  69.  Number (%RESP%)
  70.  If (%RESP%)=(0) then goto (finale)
  71.  IfNotTrue (goto (Deposit))
  72.  SetEqual (v=/:LEFT/)
  73.  inc(v)
  74.  CmpVal (%RESP%,%var%v)
  75.  IfNotTrue(goto (toolarge1))
  76.  Addvar (%var%t+%RESP%=e)
  77.  AddVar (%var%m+1=g)
  78.  CmpVal (%var%e,%var%g)
  79.  IfNotTrue(goto (OverMax))
  80.  AddVar (%var%t+%RESP%=T)
  81.  Zap (bank\%var%n.dat,%var%t)
  82.  SetEqual (y=%RESP%)
  83.  log(--,Deposited %VAR%Y minutes in Bank)
  84.  Addvar(/:LEFT/+-%var%y=x)
  85.  SetEqual(/LEFT=%var%x)
  86.  Goto (Finale)
  87.  
  88. *Withdraw
  89.  AnsiGoto (5,20)
  90.  Say (                                                                  *)
  91.  AnsiGoto (18,20)
  92.  menuAsk (&7&Withdraw How Many Minutes? *)
  93.  Number (%RESP%)
  94.  IfNotTrue(goto (withdraw))
  95.  inc(t)
  96.  CmpVal (%RESP%,%var%t)
  97.  IfNotTrue(goto (toolarge))
  98.  addvar(&t+-1=t)
  99.  AddVar (%var%T+-%RESP%=T)
  100.  Zap (bank\%var%n.dat,%var%t)
  101.  SetEqual (y=%RESP%)
  102.  AddVar(/:LEFT/+%var%y=x)
  103.  log(--,Withdrew %VAR%Y minutes from Bank)
  104.  SetEqual(/LEFT=%var%x)
  105.  Goto (Finale)
  106.  
  107. *Finale
  108.  AnsiGoto (20,10)
  109.  Say (&7&Current Balance: &12&%var%t&7& minutes.*)
  110.  AnsiGoto (18,14)
  111.  Say(&15& Time Currently Left: &14&/:LEFT/ &15&minutes.)
  112.  Goto (more2)
  113.  
  114. *TooLarge1
  115.  AnsiGoto (14,20)
  116.  Say(&4&    Hey! &7&You don't have &15&%RESP% &7&minutes left!)
  117.  SecPause (2)
  118.  Goto (Deposit)
  119.  
  120. *TooLarge
  121.  AnsiGoto (11,20)
  122.  Say(&4&Hey! &7&You don't have &15&%RESP% &7&minutes stored in the bank!)
  123.  addvar(%var%t+-1=t)
  124.  SecPause (2)
  125.  Goto (Withdraw)
  126.  
  127. *OverMax
  128.  AnsiGoto (14,20)
  129.  Say (&4&Sorry! &7&You are only allowed to store &15&%var%m &7&minutes.)
  130.  SecPause (2)
  131.  Goto (Deposit)
  132.  
  133. *NoRecord
  134.  Zap (bank\%var%n.dat,0)
  135.  Say (&15&Not Found-- Created!*)
  136.  AnsiGoto (50,20);
  137.  Say (                    *)
  138.  goto (more);
  139.  
  140. *Quit
  141.  AnsiGoto (5,20)
  142.  Say (&14&         Thank you for using the %BBS% time bank!     )
  143.  return
  144.  
  145. *NoGraphics
  146. ClearScr
  147. Say (                            %BBS% Time Bank)
  148. Say (                              (NON-GRAPHICS MODE))
  149. Say (&CR&Searching for your account....*)
  150. SeekUser(/:NAME/)
  151. ifnottrue(goto (nonuser))
  152. SetEqual(n=%NDNUMB%)
  153. Seek(bank\%var%n.DAT)
  154. ifnottrue(goto (NoRecord2))
  155. *MORE222
  156. Say (Found!)
  157. InpLine (bank\%var%n.DAT,1)
  158. SetEqual (t=%ARESP%)
  159. Seek (bank\maxlimit.dat)
  160. ifnottrue(goto (NoLimit2))
  161. InpLine (bank\maxlimit.dat,1)
  162. SetEqual (m=%ARESP%)
  163. cmpval (%var%t,%var%m)
  164. ifnottrue(SetEqual (t=%var%m))
  165. Say (&CR&The maximum number of minutes allowed to be stored is %var%m.)
  166. Say (Minutes Currently Stored in Bank: %var%t)
  167. Say(Time Currently Left: /:LEFT/)
  168. *MORE22
  169. Say (&CR&(W)ithdraw Time, (D)eposit Time, (Q)uit Bank, (G)oodbye: *)
  170. MenuKey
  171. BigNiceSay (Q:Quit,W:Withdraw,D:Deposit,G:Goodbye)
  172. BigIf (W:Withdraw2,D:Deposit2,q:quit2)
  173. if (%resp%)=(G) then loadmem(control\macros\bye.ctl)
  174. goto (more22)
  175.  
  176. *NoLimit2
  177.  SetEqual (m=99999)
  178.  Say (The maximum number of minutes allowed to be stored is %var%m.)
  179.  Say (Minutes Currently Stored in Bank: %var%t)
  180.  Say(Time Currently Left: /:LEFT/)
  181.  goto (more22)
  182.  
  183. *Deposit2
  184.  menuAsk (Deposit How Many Minutes? *)
  185.  Number (%RESP%)
  186.  If (%RESP%)=(0) then goto (finale2)
  187.  If (%ARESP%)=(No) then goto (Deposit2)
  188.  SetEqual (v=/:LEFT/)
  189.  inc(v)
  190.  CmpVal (%RESP%,%var%v)
  191.  ifnottrue(goto (toolarge12))
  192.  Addvar (%var%t+%RESP%=e)
  193.  AddVar (%var%m+1=g)
  194.  CmpVal (%var%e,%var%g)
  195.  ifnottrue(goto (OverMax2))
  196.  AddVar (%var%t+%RESP%=T)
  197.  Zap (bank\%var%n.dat,%var%T)
  198.  SetEqual (y=%RESP%)
  199.  Addvar(/:LEFT/+-%var%y=x)
  200.  log(--,Deposited %VAR%Y minutes in Bank)
  201.  SetEqual(/LEFT=%var%x)
  202.  Goto (Finale2)
  203.  
  204. *Withdraw2
  205.  menuAsk (Withdraw How Many Minutes? *)
  206.  Number (%RESP%)
  207.  IfNotTrue(goto (withdraw2))
  208.  inc(t)
  209.  CmpVal (%RESP%,%var%t)
  210.  IfNotTrue(goto (toolarge2))
  211.  addvar(&t+-1=t)
  212.  AddVar (%var%T+-%RESP%=T)
  213.  Zap (bank\%var%n.dat,%var%t)
  214.  SetEqual (y=%RESP%)
  215.  AddVar(/:LEFT/+%var%y=x)
  216.  log(--,Withdrew %VAR%Y minutes from Bank)
  217.  SetEqual(/LEFT=%var%x)
  218.  Goto (Finale2)
  219.  
  220. *Finale2
  221.  Say(&CR&Minutes Currently Stored in Bank: %var%t)
  222.  Say(Time Currently Left: /:LEFT/)
  223.  Goto (more22)
  224.  
  225. *TooLarge12
  226.  Say(Hey! You don't have %RESP% minutes left!)
  227.  Goto (Deposit2)
  228.  
  229. *TooLarge2
  230.  Say(Hey! You don't have %RESP% minutes stored in the bank!)
  231.  Goto (Withdraw2)
  232.  
  233. *OverMax2
  234.  Say (Sorry! You are only allowed to store %var%m minutes.)
  235.  Goto (Deposit2)
  236.  
  237. *NoRecord2
  238.  Zap (bank\%var%n.dat,0)
  239.  goto (more222)
  240.  
  241. *Quit2
  242.  Say (Thank you for using the %BBS% Time Bank!)
  243.  return
  244.  
  245. *nonuser
  246. say(You are not a registered user on this BBS and therefore you cannot hold)
  247. say(an account here.  If you would like an account, please notify the Sysop)
  248. return
  249.  
  250. *nolim
  251. setequal(m=32767)
  252. goto (bak)
  253. NEWSCTLseek(display\newsltr.asc)
  254. iftrue (goto (view))
  255. seek(display\newsltr.ans)
  256. iftrue (goto (view))
  257. say(&15&&CR&Sorry, there is no newsletter today.&CR&)
  258. secpause(1)
  259. return
  260.         *view
  261. log(--,Viewed Newsletter)
  262. display (display\newsltr)
  263. enter
  264. return
  265. DOWNCTL┼        *down
  266. SetActivity(Downloading Files)
  267. Display (Display\DOWN)
  268. setequal(b=)
  269. Enter
  270. Kill(Batch.%NODE%)
  271. if (%local%)=(TRUE) then setequal(b=1)
  272. if (%LOCAL%)=(TRUE) then goto (Pok)
  273. If (/PROTOCOL)=(N) Then Goto (PickProt)
  274. Display(Display\defuse)
  275. SetEqual(b=/:PROTOCOL/)
  276. Goto (pseled)
  277.  
  278.         *PickProt
  279. Display (Display\DN-PROTS)
  280. MenuAsk %MIN1% (&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  281. Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  282. NotIf (%ARESP%)=(0) Then Goto (badprot)
  283. BigIf(h:phelp,q:filesback)
  284. SetEqual(b=%RESP%)
  285.         
  286.         *pseled
  287. Seek(protocol\%var%b-D.BT)    ;check to see If protocol exists..
  288. IfTrue(Goto (Pok))
  289.  
  290.         *badprot
  291. loadsub(control\macros\badsel.ctl)
  292. Goto (PickProt)  ;go back and ask again..
  293.         
  294.         *Pok
  295. Seek(tagged.%NODE%)   ;see If there are any tagged files..
  296. IfTrue(Goto (texist))
  297. linefeed(1)
  298. len(%var%b)   ;see If they picked a batch protocol
  299. NotIf(%ARESP%)=(1) Then loadmem(control\BATCH.CTL)
  300.         
  301.         *fname
  302. say(&3&Please enter the name of the file to download&12&: &14&(&F&12)&15&*)
  303. back(13)
  304. menuask%NOCR%%CRON%%LEN12%(*)
  305.   if (%RESP%)=(<CR>) then say()
  306.   if (%RESP%)=(<CR>) then Return
  307.   len(%Resp%)
  308.   back(%Aresp%)
  309. adddef(.%DEFEXT%)  
  310.   say(%Resp%&11&&CR&)
  311. say(Please wait!... We're searching for the file...*)
  312. Seekfall(%RESP%)
  313. If (%ARESP%)=(INVALID) Then Goto (invfn)  ;If invalid filename
  314. If (%ARESP%)=(No) Then Goto (nothere)
  315. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf)
  316. If (%RATIO%)=(NOT OK) Then Goto (badratio)  ;If bad ratio...
  317. selFarea(%ARESP%)    ;set file area to where the file is...
  318. size(%FILPATH%%RESP%)
  319. say(Found!&CR&&CR&&14& ───────  &12&Statistics for %RESP% &14& ───────&15&)
  320. say(Free Download: &11&%FREE% &15&*)
  321. If (%FREE%)=(No) Then say( *)
  322. say(        Size: &11&%ARESP% &15&&CR&Dated: *)
  323. fdate(%FILPATH%%RESP%)   ;get file date
  324. say(&11&%ARESP% &15&         Transfer Time: *)
  325. size(%FILPATH%%RESP%)
  326. ttime(%ARESP%)
  327. say(&11&%ARESP%)
  328. cmpval(%TTIM%,/:LEFT/)
  329. If (%ARESP%)=(No) Then If (%FREE%)=(No) Then Goto (notenuftime)
  330. SetEqual(d=%RESP%)
  331. say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  332. back(4)
  333. yesnoask(*)
  334. If (%RESP%)=(No) Then Goto (ex)
  335. say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  336. back(4)
  337. yesnoask(*)
  338. SetEqual(m=%RESP%)
  339. say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  340. If (%LOCAL%)=(TRUE) Then Goto (lcl)
  341. fixfile(protocol\%var%b-d.bt,protocol\%var%b-d.bat)
  342. initclock
  343. exec(protocol\%var%b-d.BAT│)
  344. Kill(protocol\%var%b-d.bat)
  345.  
  346.         *success
  347. setequal(t=)
  348. NotIf (%ARESP%)=(0) Then Goto (aborted)
  349. notif (%LOCAL%)=(FALSE) then setequal(t=TOG)
  350. if (%LOCAL%)=(FALSE) then toglocal
  351. xfertime
  352. SetEqual(e=%ARESP%)
  353. multvar(%XMIN%*60=o)
  354. size(%FILPATH%%var%d)
  355. divvar(%ARESP%/%var%o=g)
  356. cnvtk(%ARESP%)
  357. addvar(%ARESP%+/:KDOWN/=o)
  358. SetEqual(/KDOWN=%var%o)
  359. say(%BEEP%*)
  360. log(--,%var%d Downloaded.)
  361. log(--,Rate: %var%g CPS)
  362. appendto(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  363. SetEqual(a=/:DOWNLOADS/)
  364. inc(a)
  365. SetEqual(/DOWNLOADS=%var%a)
  366. notif (%var%t)=(TOG) then toglocal
  367. eline(20)
  368. Display (Display\SUCCESS)
  369. If (%FREE%)=(Yes) Then Goto (free)
  370. If (&m)=(Yes) Then Goto (autooff)
  371.         
  372.         *ex
  373. selfarea(/:LASTDOWN/)
  374. linefeed(1)
  375. return
  376.         
  377.         *aborted
  378. eline(20)
  379. log(--,Download of %var%d aborted.)
  380. display(display\aborted)
  381. goto (ex)
  382.  
  383.         *lcl
  384. menuask(&CR&&3&Please specify the path &11&(e.g. C:\DLS\)&3& for this file&12&: &15&*)
  385. setequal(k=10)
  386. initclock
  387. fcopy (%FILPATH%%var%d,%RESP%\%var%d)
  388. notif (%ARESP%)=(0) then goto (aborted)
  389. goto (success)
  390.         
  391.         *badratio
  392. Display(Display\BADRATIO)
  393. selfarea(/:LASTDOWN/)
  394. linefeed(1)
  395. return
  396.  
  397.         *autooff
  398. loadmem(control\AutoOff.ctl)
  399.  
  400.         *free
  401. log(--,Freefile downloaded, time refunded.)
  402. size(%var%d)
  403. ttime(%ARESP%)
  404. addvar(%TTIM%+/:LEFT/=t)
  405. SetEqual(/LEFT=%var%t)
  406. If (&m)=(Yes) Then Goto (autooff)
  407. Goto (ex)
  408.         
  409.         *texist
  410. len(%var%b)
  411. If (%ARESP%)=(1) Then Goto (len1)
  412. say(&CR&&14&Files Currently Tagged:)
  413. lview(tagged.%NODE%,10,7)
  414. say(&CR&&3&Would you like to download the tagged files? &9&[   ]&14&*)
  415. back(4)
  416. yesnoask(*)
  417. say(&14&)
  418. If (%RESP%)=(No) Then loadmem(control\BATCH.CTL,Goto (startbatch))
  419. say(Adding Tagged files to Batch...*)
  420. fcopy(tagged2.%NODE%,batch.%NODE%)
  421. lines(batch.%NODE%)
  422. SetEqual(m=0)
  423. SetEqual(w=%ARESP%)
  424. say(Done!&CR&)
  425. loadmem(control\BATCH.CTL,Goto (fname))
  426.         *len1
  427. say(&10&&CR&You have tagged files but they can only be downloaded with a BATCH)
  428. say(protocol.  Please press &11&Enter&10& now to abort then choose a dIfferent protocol)
  429. say(if you'd like to download your tagged files.&CR&)
  430. Goto (fname)
  431.         *notenuftime
  432. Display(Display\NODLTIME)
  433. return
  434.         *phelp
  435. Display(Display\help\prot,/:SEC/)
  436. Goto (PickProt)
  437.         *invfn
  438. Display(Display\INVALID)
  439. flushout
  440. selfarea(/:LASTDOWN/)
  441. Enter
  442. goto (fname)
  443.         *filesback
  444. return
  445.         *notenuf
  446. Display (Display\fbadsec)
  447. selfarea(/:LASTDOWN/)
  448. return        
  449.         *NotHere
  450. Display(Display\notfnd)
  451. goto (fname)
  452.         *moveerr
  453. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  454. goto (endmove)
  455. EXPERTCTL÷If (/EXPERT)=(Y) Then Goto (exon)
  456. Say(&14&&CR&Menus will not be displayed (Expert Mode On)&CR&)
  457. SetEqual(/EXPERT=Y)
  458. Enter
  459. Return
  460.    *exon
  461. Say(&14&&CR&Menus will now be displayed (Expert Mode Off)&CR&)
  462. SetEqual(/EXPERT=N)
  463. Enter
  464. Return
  465.  
  466. VERCTL-clearscr
  467. say(&14&Powerboard &3&Bulletin Board System, Ver. &11&%ver%&7&)
  468. say(&CR&Copyright, 1991-92, by Scott W. Brown)
  469. say(All Rights Reserved.&CR&)
  470. say(&CR&&14&Microsoft(R) &3&MS-DOS, Ver. &11&%DOSVER%&7&)
  471. say(&CR&Copyright Microsoft Corperation)
  472. say(All Rights Reserved.&CR&)
  473. enter
  474. return
  475. STREETCTLwAsk(What is your &11&street&3& address?&12&: &15&*)
  476. SetEqual(/STREET=%RESP%)
  477. Log(--,Changed Street Address)
  478. return
  479. UPCTL╓   display (display\UPLD)
  480.    kill(ubatch.%NODE%)
  481.    enter
  482.    clearmem
  483.    freespace(%CDRIVE%:)
  484.    setequal(i=%ARESP%)
  485.    cmpval(%ARESP%,%MINSPACE%)
  486.    ifTrue (goto (notenufs))
  487.    if (%LOCAL%)=(TRUE) then goto (pok)
  488.    *pickprot
  489.    display (display\up-PROTS)
  490.    menuask %MIN1%(&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  491.    find(%RESP%,\)
  492.    notif (%ARESP%)=(0) then goto (badprot)
  493.    BigIf(h:phelp,q:filesback)
  494.    seek(protocol\%RESP%-U.BT)
  495.    ifTrue (goto (Pok))
  496. *badprot
  497. loadsub(control\macros\badsel.ctl)
  498.    goto (pickprot)
  499.    *Pok
  500.    setequal(b=%RESP%)
  501.    addcomma(%var%i)
  502.    say(&CR&&14&%aresp% &7&Bytes Free.)
  503.    len(%var%b)
  504.    notif (%ARESP%)=(1) then loadmem(control\macros\ubatch.ctl)
  505. *gtname
  506. say(&CR&&3&Please enter the name of the file to upload&12&: &14&(&F&12)&15&*)
  507. back(13)
  508. menuask%NOCR%%CRON%%LEN12%(*)
  509.   if (%RESP%)=(<CR>) then say()
  510.   if (%RESP%)=(<CR>) then Return
  511.   len(%Resp%)
  512.   back(%Aresp%)
  513. adddef(.%DEFEXT%)  
  514.   say(%Resp%&11&&CR&)
  515.   setequal(d=%RESP%)
  516.   iseek(%var%d)
  517.   if (%aresp%)=(Yes) then goto (ishere)
  518.   if (%Aresp%)=(INVALID) then goto (invfn)
  519.   say(&14&Please enter a description for your file.  &10&The description can take up 3 lines.&15&)
  520.   resetwrap
  521.   say(   (----2----3----4----5----6----7---8----))
  522.   setequal(r=1)
  523.   wrapask %MIN1%%LEN40%(&3&1&12&: &15&*)
  524.   setequal(^1=%RESP%)
  525.   setequal(r=2)
  526.   wrapask %LEN40%%CRON%(&3&2&12&: &15&*)
  527.   if (%RESP%)=(<CR>) then goto (askup)
  528.   setequal(^2=%RESP%)
  529.   setequal(r=3)
  530.   ask %LEN39% %CRON%(&3&3&12&: &15&*)
  531.   if (%RESP%)=(<CR>) then goto (askup)
  532.   setequal(^3=%RESP%)
  533. *askup
  534.   say(&CR&&3&         Would you like to upload this file? &9&[   ]&14&*)
  535.   back(4)
  536.   yesnoask(*)
  537.   if (%RESP%)=(No) then goto (ex)
  538.   say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  539.   back(4)
  540.   yesnoask(*)
  541.   setequal(m=%RESP%)
  542.   if (%LOCAL%)=(TRUE) then goto (local)
  543.   setactivity(Uploading a File)
  544.   say(&CR&&11&We're ready to receive the file.  Please start sending it now.)
  545.   fixfile(protocol\%var%b-u.bt,protocol\%var%b-u.bat)
  546.   initclock
  547.   exec(protocol\%var%b-u.BAT│)
  548.   kill(protocol\%var%b-u.bat)
  549.  
  550.         *success
  551. eline(20)
  552. notif (%ARESP%)=(0) then goto (aborted)
  553. setequal(k=0)
  554. *lsuccess
  555. xfertime
  556. setequal(e=%ARESP%)
  557. loadsub(zc\zc.ctl)
  558. if (&a)=(2) then goto (aborted)
  559.  
  560. notif (%BAUD%)=(LOCAL) then toglocal
  561. setequal(b=%XMIN%)
  562. if (&b)=(0) then setequal(b=1)
  563. multvar(%var%b*60=o)
  564. size(files\uploads\%var%d)
  565. divvar(%ARESP%/%var%o=g)
  566.   log(--,%var%d Uploaded. Took %XMIN% minutes.)
  567.   log(--,Rate: %var%g CPS)
  568.   cnvtk(%ARESP%)
  569.   addvar(%ARESP%+/:KUP/=o)
  570.   setequal(/KUP=%var%o)
  571.   say(%BEEP%*)
  572.   refund        ;refund some of the users time...
  573.   upped         ;set last upload time...
  574.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  575.   setequal(a=/:UPLOADS/)
  576.   inc(a)
  577.   setequal(/UPLOADS=%var%a)
  578.   file(files\uploads\,%var%d,10)
  579.   notif (%BAUD%)=(LOCAL) then toglocal
  580.   seek(xcheck.bt)
  581.   if (%ARESP%)=(Yes) then goto (testup)
  582.   display (display\USUCCESS)
  583.   if (&m)=(Yes) then goto (autooff)
  584. *ex
  585.   resetlist
  586.   listfile(%FAREA%)
  587.   Return
  588. *aborted
  589.   log(--,Upload of %var%d aborted.)
  590.   display (display\ABORTED)
  591.   goto (ex)
  592. *ishere
  593.   display(display\ISHERE)
  594.   enter
  595.   goto (gtname)
  596.  
  597. *testup
  598.   fixfile(xcheck.bt,xcheck.bat)
  599.   exec(xcheck.bat)
  600.   display (display\USUCCESS)
  601.   goto (ex)
  602.  
  603. *autooff
  604. loadmem(control\autooff.ctl)
  605.  
  606. *local
  607. say(&CR&&10&You will now specify the path where the file resides.  Ex: C:\DOWNLOADS\)
  608. menuask(&3&Please enter the path&12&: &15&*)
  609. setequal(k=10)
  610. initclock
  611. fcopy (%RESP%\%var%d,files\uploads\%var%d)
  612. notif (%ARESP%)=(0) then goto (err)
  613. goto (lsuccess)
  614. *err
  615. say(&11&&CR&File not found!&CR&)
  616. enter
  617. Return
  618.  
  619. *invfn
  620. display(display\INVALID)
  621. flushout
  622. selfarea(/:LASTDOWN/)
  623. enter
  624. Return
  625.  
  626. *notenufs
  627. display (display\NOSPACE)
  628. selfarea(/:LASTDOWN/)
  629. enter
  630. Return
  631.  
  632. *phelp
  633. display(display\help\prot,/:SEC/)
  634. goto (pickprot)
  635.  
  636. *filesback
  637. Return
  638. WORKCTLÿSay(What is your new &11&work &3&phone number?&12&: &15&)
  639. Picture(###-###-####)
  640. SetEqual(/WORK=%RESP%)
  641. Log(--,Changed Work Phone to %RESP%)
  642. return
  643. SELECTCTL0*TheTop
  644.  
  645. clearscr
  646. say(&CR&&14&Accessable Message Areas As Of %DATE% On %BBS%&CR&)
  647. say(&11&###:Message Area Name                                           :Area Flags)
  648. say(---:------------------------------------------------------------:----------&15&)
  649. mList  ;list message areas
  650. say(&11&---:------------------------------------------------------------:----------&15&)
  651. say(        Total                                                    %MAXAREA%&CR&)
  652. say(&12&Flags: *=Selected, P=Pvt Ok, F=Force Pvt, N=Force Pub, B=Netmail, I=Ignored&CR&)
  653. *bk
  654. menuask%CRON%(&3&Please enter area number to change or &11&(Q)uit&12&: &15&*)
  655. bigif(<CR>:quit,q:quit)
  656. number(%RESP%)
  657. iftrue(goto (DoArea))
  658. loadsub(control\macros\badsel.ctl)
  659. goto (bk)
  660.  
  661. *DoArea
  662. linefeed(1)
  663. msel(%RESP%)
  664. goto (TheTop)
  665.  
  666. *quit
  667. return
  668. BADSELCTLZSay(&12&&CR&Invalid selection!  Please try again...&CR&)
  669. SecPause (1)
  670. FlushOut
  671. Return
  672. UBATCHCTL┤
  673.  setequal(w=1)
  674.  kill(udescs.%NODE%,ubatch.%NODE%,ubatch1.%NODE%)
  675.  
  676. *fname
  677.   if (&w)=(10) then goto (askup)
  678.   say(&CR&&10&Pressing (ENTER) will let you start uploading your files.)
  679.   say(&3&Please enter name of the file to upload&12&: &14&(            )&15&*)
  680.   back(13)
  681.   menuask%NOCR%%CRON%%LEN12%(*)
  682.   if (%RESP%)=(<CR>) then Say ()
  683.   if (%RESP%)=(<CR>) then goto (askup)
  684.   len(%Resp%)
  685.   back(%Aresp%)
  686.   adddef(.%DEFEXT%)
  687.   say(%Resp%)
  688.   setequal(d=%RESP%)
  689.   iseek(%var%d)
  690.   if (%aresp%)=(Yes) then goto (ishere)
  691.   if (%Aresp%)=(INVALID) then goto (invfn)
  692.   appendto(ubatch.%NODE%,files\uploads\%var%d)
  693.   setequal(^%var%w=files\uploads\%var%d)
  694.   inc(w)
  695.   appendto(ubatch1.%NODE%,%var%d)
  696.   say(&CR&&14&Please enter a description for your file.  &10&The description can take up 3 lines.*)
  697.   resetwrap   ;the resetwrap command resets the wordwrap.
  698.   say(&CR&&15&   (----2----3----4----5----6----7---8----))
  699.   wrapask %MIN1%%LEN40%(&3&1&12&: &15&*)
  700.   setequal(r=1)
  701.   appendto(udescs.%NODE%,%RESP%)
  702.   wrapask %LEN40%%CRON%(&3&2&12&: &15&*)
  703.   find(%resp%,<CR>)
  704.   notif (%aresp%)=(0) then goto (nomore)
  705.   appendto(udescs.%NODE%,%RESP%)
  706.   setequal(r=2)
  707.   ask %LEN39%(&3&3&12&: &15&*)
  708.   appendto(udescs.%NODE%,%RESP%)
  709.   setequal(r=3)
  710.   goto (fname)
  711.  
  712. *nomore
  713.   appendto(udescs.%NODE%, )
  714.   appendto(udescs.%NODE%, )
  715.   goto (fname)
  716.  
  717. *askup
  718.   if (^1)=() then goto (ex)
  719.   say(&CR&&3&       Would you like to upload these files? &9&[   ]&14&*)
  720.   back(4)
  721.   yesnoask(*)
  722.   if (%Resp%)=(No) then goto (ex)
  723.   say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  724.   back(4)
  725.   yesnoask(*)
  726.   setequal(m=%RESP%)
  727.   if (%LOCAL%)=(TRUE) then goto (local)
  728.   setactivity(Uploading Files)
  729.   say(&CR&&11&We're ready to receive the files.  Please start sending them now.)
  730.   fixfile(protocol\%var%b-u.bt,protocol\%var%b-u.bat)
  731.   initclock ;initalize the timer that keeps track of how long the d/l took...
  732.   exec(protocol\%var%b-u.BAT│)
  733.   kill(protocol\%var%b-u.bat)
  734.  
  735. *success
  736.   notif (%ARESP%)=(0) then goto (aborted)
  737.   xfertime
  738.   setequal(e=%ARESP%)
  739.   if (%ARESP%)=(ERROR) then goto (dsucc)
  740.   upped
  741.   setequal(t=0)
  742.   linefeed(1)
  743.   setequal(a=/:UPLOADS/)
  744.   clearmem
  745.   setequal(c=0)
  746.   setequal(i=1)
  747.  
  748. *stcalc
  749.   inpline(ubatch1.%NODE%,%var%i)
  750.   if (%ARESP%)=() then goto (donecalc)
  751.   setequal(d=%ARESP%)
  752.   setequal(b=0)
  753.   loadsub(zc\zc.ctl)
  754.   if (&a)=(2) then goto (nextfile)
  755.   size(files\uploads\%var%d)
  756.   addvar(%var%t+%ARESP%=t)
  757.   cnvtk(%ARESP%)
  758.   addvar(%ARESP%+/:KUP/=o)
  759.   setequal(/KUP=%var%o)
  760.   multvar(%var%c*3=y)
  761.   if (&b)=(0) then arrayread(udescs.%NODE%,%var%y,3)
  762.   file(files\uploads\,%var%d,10)
  763.   log(--,%var%d Uploaded (batch).)
  764.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  765. *nextfile
  766.   inc(i)
  767.   inc(c)
  768.   goto (stcalc)
  769.  
  770. *donecalc
  771.   inc(c)
  772.   say(%BEEP%)
  773.   multvar(%XMIN%*60=o)
  774.   divvar(%var%t/%var%o=g)
  775.   setequal(/UPLOADS=%var%a)
  776.   log(--,Rate: %var%g CPS)
  777.  
  778. *dsucc
  779.   display (display\SUCCUB)
  780.   if (%var%m)=(Yes) then goto (autooff)
  781.  
  782. *ex
  783.   selfarea(/:LASTDOWN/)
  784.   linefeed(1)
  785.   seek(bxtest.bt)
  786.   if (%ARESP%)=(Yes) then goto (testup)
  787.   resetlist
  788.   listfile(%FAREA%)
  789.   Return
  790.  
  791. *aborted
  792.   log(--,Batch Download aborted.)
  793.   display (display\ABORTED)
  794.   goto (ex)
  795.  
  796. *ishere
  797.   display(display\ISHERE)
  798.   enter
  799.   linefeed(1)
  800.   goto (fname)
  801.  
  802. *testup
  803.   fixfile(bxcheck.bt,bxcheck.bat)
  804.   exec(bxcheck.bat)
  805.   display (display\USUCCESS)
  806.   goto (ex)
  807.  
  808. *autooff
  809.   loadmem(control\autoOff.ctl)
  810.  
  811. *local
  812.   initclock
  813.   say(&CR&&10&You will now specify the path where the file resides.  Ex: C:\DOWNLOADS\)
  814.   menuask(&3&Please enter the path&12&: &15&*)
  815.   fcopy (%RESP%\%var%d,files\uploads\%var%d)
  816.   goto (success)
  817.  
  818. *invfn
  819.   display(display\INVALID)
  820.   flushout
  821.   selfarea(/:LASTDOWN/)
  822.   enter
  823.   goto (fname)
  824.  
  825. *notenufs
  826.   display (display\NOSPACE)
  827.   selfarea(/:LASTDOWN/)
  828.   enter
  829.   goto (fname)
  830.  
  831. *phelp
  832.   display(display\help\prot,/:SEC/)
  833.   goto (pickprot)
  834. MOVECTLæ*fname
  835. say(&CR&&3&Please enter the name of the file to move&12&: &14&(            )&15&*)
  836. back(13)
  837. menuask%CRON%%LEN12%(*)
  838. If (%RESP%)=(<CR>) Then return
  839. adddef(.%DEFEXT%)
  840. say(&CR&&11&Please wait!... We're searching for the file...*)
  841. seekfall(%RESP%)
  842. if (%ARESP%)=(INVALID) then goto (invfn)
  843. if (%ARESP%)=(No) then goto (nothere)
  844. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  845. if (%RESP%)=(%ARESP%) then goto (moveerr)
  846. selFarea(%ARESP%)
  847. setequal(l=%RESP%)
  848. inpopen(%FAREA%.bbs)
  849. if (%ARESP%)=(ERROR) then goto (moveerr)
  850. setequal(u=1)
  851. say(Found!&7&)
  852. inpread
  853. do
  854. say(%var%u - %ARESP%)
  855. inpread(2)
  856. inc(u)
  857. eofloop
  858.  
  859.         *stopinp
  860. inpclose
  861. menuask%cron%(&CR&&3&Enter the number of the directory you want to move this to&12&: &15&*)
  862. if (%resp%)=(<CR>) then goto (moveerr)
  863. say(&CR&&14&Please wait, moving file...*)
  864. setequal(j=%FILPATH%)
  865. selfarea(%RESP%)
  866. if (%FILPATH%)=(&j) then goto (moveerr)
  867. move2(%var%l,%var%j,%FILPATH%,%FILAREA%,%FAREA%)
  868. resetlist
  869. listfile(%FAREA%)
  870.  
  871.         *endmove
  872. selfarea(/:LASTDOWN/)
  873. say(Done!)
  874. Return
  875.         *invfn
  876. Display(Display\INVALID)
  877. flushout
  878. selfarea(/:LASTDOWN/)
  879. Enter
  880. goto (fname)
  881.         *notenuf
  882. Display (Display\fbadsec)
  883. selfarea(/:LASTDOWN/)
  884. return        
  885.         *NotHere
  886. Display(Display\notfnd)
  887. goto (fname)
  888.         *moveerr
  889. say(&CR&&14&The directory you specify is where the file already resides!&CR&)
  890. selfarea(/:lastdown/)
  891. return
  892. CHGCTLVif (%EXPERT%)=(Y) then goto(adisp)
  893. *disp
  894. Display(display\CHG,/:SEC/)
  895. *adisp
  896. MenuAsk%cron%(&CR&&3&Which message area would you like&11&(ENTER=Quit, ?=Redisplay)&3&?&12&: &15&*)
  897. if (%Resp%)=(<CR>) then return
  898. if (%RESP%)=(?) then goto(disp)
  899. *sela
  900. Number(%RESP%)
  901. If (%ARESP%)=(No) Then Return
  902. CmpValO(%MAXAREA%,%RESP%) ;cmpvalo will report no if it's under 1.
  903. IfTrue (Return)
  904. SelArea(%RESP%)
  905. EnufSec(%AREASEC%)
  906. IfTrue(Goto (cnt))
  907. SelArea(/:LASTMSG/)
  908. Say(&CR&&14&You don't have a high enough security level for that area.&CR&)
  909. enter
  910. Return
  911. *cnt
  912. Display(areas\welc%RESP%)
  913. say(&CR&&11&Changing...|)
  914. ListFile(areas\farea%RESP%)
  915. eline(13)
  916. if (%FAREA%)=(AREAS\FAREA%RESP%) then goto (fsetup)
  917. goto (seled)
  918.  
  919. *fsetup
  920. selfarea(1)
  921. setequal(/lastdown=1)
  922. *seled
  923. Say(Area #%RESP%:&15& %AREANAME%&11& is now selected!&CR&&7&)
  924. if (%AREAPVT%)=(Y) then say(Private mail is allowed in this area.)
  925. if (%AREAPVT%)=(N) then say(No private mail is allowed in this area.)
  926. if (%AREAFPUB%)=(Y) then say(All messages are forced public.)
  927. if (%AREAFPVT%)=(Y) then say(All messages are forced private.)
  928. if (%MSGNET%)=(Y) then say(Netmail is supported in this area.)
  929. if (%MSGFNET%)=(Y) then say(All mail in this area is Netmail.)
  930. linefeed(1)
  931. enter
  932. SetEqual(/LASTMSG=%RESP%)
  933. seek(areas\news/:lastmsg/.asc)
  934. iftrue(loadsub(control\macros\cnfnews.ctl))
  935. Return
  936. STATSCTLI    *stats
  937. Clearscr
  938. If (/graphics)=(ANSI) Then Goto (ansist)
  939. Say(   Statistics Here at %BBS%)
  940. Goto (ContStats)
  941. *ansist
  942. Say($7$                                                                               $0$*)
  943. AnsiGoto(3,1)
  944. Say($7$&0&   Statistics Here at %BBS%$0$&7&)
  945. *ContStats
  946. Say(&CR&&7&Date of Last Call: &14&/:LAST/            &11&│&7& Your Security Level Is: *)
  947. Say(&14&%SEC%&CR&&7&First call to BBS: &14&/:FIRST/            &11&│&7& Times on this *)
  948. Say(BBS: &14&/:TIMESON/&CR&&7&Last New Files Check: &14&/:LASTCHK/         &11&│&7& *)
  949. Say(Carrier Drops: &14&/:DROPPED/&CR&&7&Current BBS Time: &14&%DATE% %TIME%       &11&│*)
  950. Say(&7& Time Allotted Per Day: &14&%LIMIT%&CR&&CR&)
  951.  
  952. If (/graphics)=(ANSI) Then Goto (ansist2)
  953. Say(   Information you can change yourself:)
  954. Goto (ContStats2)
  955. *ansist2
  956. Say($7$                                                                               $0$*)
  957. AnsiGoto(1,9)
  958. Say($7$&0&   Information you can change yourself:$0$&10&)
  959. *ContStats2
  960. Say(&CR&1. &11&Street Address: &7&*)
  961. SetEqual(a=/:STREET/)
  962. SetLen(a=19)
  963. Say(%var%a  &10&2. &11&City and State: &7&*)
  964. Say(/:FROM/)
  965. Say(&10&3. &11&Password: &7&*)
  966. SetEqual(a=/:PASS/)
  967. SetLen(a=25)
  968. Say(%var%a  &10&4.   &11&Phone number: &7&*)
  969. Say(/:PHONE/)
  970. Say(&10&5. &11&Graphics Mode: &7&*)
  971. SetEqual(a=%GRAPHICS%)
  972. SetLen(a=20)
  973. Say(%var%a  &10&6.     &11&Work Phone: &7&/:WORK/)
  974. Say(&10&7. &11&Default Protocol: &7&*)
  975. SetEqual(a=/:PROTOCOL/)
  976. SetLen(a=17)
  977. Say(%var%a  &10&8.  &11&Screen Length: &7&/:SCREENLEN/)
  978. Say(&CR&&CR&&3&Would you like to change anything? &9&[   ]&14&*)
  979. Back(4)
  980. YesNoAsk(*)
  981. If (%RESP%)=(No) Then return
  982. Say(&10&&CR&Selections are listed above (1-8).)
  983. MenuAsk (&3&Which selection would you like to change?&12&: &15&*)
  984. Say(&3&)
  985. BigIf (1:street,2:city,3:pass,4:phone,5:graph,6:work,7:prot,8:scrlen)
  986. Return
  987.  
  988.  *prot
  989. loadsub(control\macros\defprot.ctl)
  990. Goto (stats)
  991.  
  992.         *scrlen
  993. loadsub(control\macros\scrlen.ctl)
  994. Goto (stats)
  995.  
  996.         *street
  997. loadsub(control\macros\street.ctl)
  998. Goto (stats)
  999.  
  1000.         *city
  1001. loadsub(control\macros\city.ctl)
  1002. Goto (stats)
  1003.  
  1004.         *pass
  1005. loadsub(control\macros\pass.ctl)
  1006. Goto (stats)
  1007.  
  1008.         *phone
  1009. loadsub(control\macros\hphone.ctl)
  1010. Goto (stats)
  1011.  
  1012.         *graph
  1013. loadsub(control\macros\graph.ctl)
  1014. Goto (stats)
  1015.  
  1016.         *work
  1017. loadsub(control\macros\work.ctl)
  1018. Goto (stats)
  1019. FULLEDITCTL          *fullmode
  1020. seek(extedit.bat)
  1021. iftrue(goto (extern))
  1022. CmpVal(19,%MAXLINE%)
  1023. IfTrue (goto (page2))
  1024. *bpage1
  1025. ClearScr
  1026. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  1027. say($7$                                                                               |)
  1028. Say(&0&To: &2&%var%a        &0&From: &2&%NAME%    &0&Regarding: &2&%var%b$0$)
  1029. say($0$    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  1030. NumbLines(1,19)
  1031. AnsiGoto(1,4)
  1032. ShowTxtL(15,7,1,20)
  1033. setequal(p=%MAXLINE%)
  1034. cmpval(19,%var%p)
  1035. iftrue (setequal(p=19))
  1036. setline(%var%p)
  1037. addvar(%var%p+3=p)
  1038. ansigoto(1,%var%p)
  1039. GetText(15,7,1,19)
  1040. if (%ARESP%)=(DOWNEXIT) then goto (bpage2)
  1041. If (%ARESP%)=(FULLEXIT) Then goto (quit)
  1042.         
  1043.         *page2
  1044. CmpVal(33,%MAXLINE%)
  1045. IfTrue (goto (page3))
  1046. *bpage2
  1047. ClearScr
  1048. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  1049. say($7$                                                                               |)
  1050. Say(&0&To: &2&%var%a        &0&From: &2&%NAME%    &0&Regarding: &2&%var%b$0$)
  1051. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  1052. NumbLines(15,33)
  1053. AnsiGoto(1,4)
  1054. ShowTxtL(15,7,15,34)
  1055. setequal(p=%MAXLINE%)
  1056. cmpval(34,%var%p)
  1057. iftrue (setequal(p=34))
  1058. setline(%var%p)
  1059. addvar(%var%p+-11=p)
  1060. ansigoto(1,%var%p)
  1061. GetText(15,7,15,33)
  1062. if (%ARESP%)=(UPEXIT) then goto (bpage1)
  1063. if (%ARESP%)=(DOWNEXIT) then goto (bpage3)
  1064. If (%ARESP%)=(FULLEXIT) Then goto (quit)
  1065.  
  1066.         *page3
  1067. cmpval(47,%Maxline%)
  1068. iftrue (goto (page4))
  1069. *bpage3
  1070. ClearScr
  1071. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  1072. say($7$                                                                               |)
  1073. Say(&0&To: &2&%var%a        &0&From: &2&%NAME%    &0&Regarding: &2&%var%b$0$)
  1074. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  1075. NumbLines(30,48)
  1076. AnsiGoto(1,4)
  1077. ShowTxtL(15,7,30,49)
  1078. setequal(p=%MAXLINE%)
  1079. cmpval(48,%var%p)
  1080. iftrue (setequal(p=48))
  1081. setline(%var%p)
  1082. addvar(%var%p+-26=p)
  1083. ansigoto(1,%var%p)
  1084. GetText(15,7,30,48)
  1085. if (%ARESP%)=(UPEXIT) then goto (bpage2)
  1086. if (%ARESP%)=(DOWNEXIT) then goto (page4)
  1087. if (%ARESP%)=(FULLEXIT) then goto (quit)
  1088.  
  1089.   *page4
  1090. clearscr
  1091. say(&7&Entering mail in the %AREANAME% area.  Press (&11&CTRL-Z&7&) to exit.)
  1092. say($7$                                                                               |)
  1093. Say(&0&To: &2&%var%a        &0&From: &2&%NAME%    &0&Regarding: &2&%var%b$0$)
  1094. say(    &3&(--------/---------/---------/---------/---------/---------/---------/----)&15&)
  1095. NumbLines(48,59)
  1096. AnsiGoto(1,4)
  1097. ShowTxtL(15,7,48,60)
  1098. setequal(p=%MAXLINE%)
  1099. cmpval(59,%var%p)
  1100. iftrue (setequal(p=59))
  1101. setline(%var%p)
  1102. addvar(%var%p+-44=p)
  1103. ansigoto(1,%var%p)
  1104. GetText(15,7,48,59)
  1105. if (%ARESP%)=(UPEXIT) then goto (bpage3)
  1106.  
  1107.         *quit
  1108. AnsiGoto(1,22)
  1109. linefeed(1)
  1110. Return
  1111.  
  1112. *extern
  1113. inittxt
  1114. exec(extedit.bat %node%)
  1115. seek(msgtmp)
  1116. ifnottrue(return)
  1117. lines(msgtmp)
  1118. import (msgtmp,,1,%aresp%)
  1119. ;setequal(a=%aresp%)
  1120. ;inc(a)
  1121. ;setmax(%var%a)
  1122. return
  1123. SCANMCTLïclearscr
  1124. say(&14&Scanning Message Headers in area %AREANAME%:&7&&CR&)
  1125.  
  1126. himsg(/:LASTMSG/)
  1127. setequal(f=%ARESP%)
  1128. lowmsg(/:LASTMSG/)
  1129. setequal(y=%ARESP%)
  1130. setequal(a=2)
  1131. resetpause
  1132.  
  1133. *BEGIN
  1134. DO
  1135. GETMAIL(%VAR%Y,/:LASTMSG/,1,T)
  1136. IF (%MSGNUMBER%)=(0) THEN GOTO(LP)
  1137. NOTIF(%ARESP%)=(Yes) THEN GOTO(LP)
  1138. SETEQUAL(C=%MSGDESC%)
  1139. FCOMMA(C)
  1140. GET(&C,1,23)
  1141. SAY(%MSGNUMBER%; %MSGSNTD%;&11& %MSGFROM% &7&to &15&%MSGTO%;&7& Re: %ARESP%)
  1142. INC(A)
  1143. *LP
  1144. IF (&Y)=(&F) THEN GOTO(BACK)
  1145. INC(Y)
  1146. IF (&A)=(/SCREENLEN) THEN GOTO(PAUSE)
  1147. LOOP
  1148.  
  1149. *pause
  1150. setequal(a=1)
  1151. pauseprompt
  1152. if (%ARESP%)=(STOP) then goto (back)
  1153. goto (begin)
  1154.  
  1155.  
  1156. *back
  1157. linefeed(1)
  1158. enter
  1159. Return
  1160. FORWCTLmenuask%nocr%(&CR&&3&Forward message to which user?&12&: &15&*)
  1161. seekuser(%RESP%)
  1162. say()
  1163. IfNotTrue (setequal(a=0))
  1164. ifnottrue (return)
  1165. say(&CR&&11&Forwarding Message...*)
  1166. iftrue (setequal(a=%NDNUMB%))
  1167. if (%MSGPVT%)=(PRIVATE) then setequal(k=Yes)
  1168. notif (%MSGPVT%)=(PRIVATE) then setequal(k=No)
  1169. nicequal(b=%MSGTO%)
  1170. zap(forw.%NODE%, ■ Message Originally Addressed to %var%b)
  1171. appendto(forw.%NODE%, ■ Message Originally Sent By %MSGFROM%)
  1172. appendto(forw.%NODE%, ■ Message Forwarded By %NAME%)
  1173. appendto(forw.%NODE%, )
  1174. capture(forw1.%NODE%)
  1175. exec(copy forw.%NODE%+forw1.%NODE% forwrd.%NODE% ,)
  1176. inittxt
  1177. import(forwrd.%NODE%,,1,100)
  1178. writemsg(/:LASTMSG/,%RESP%,%NAME%,%MSGDESC%,%var%a,%var%k,0,%MSGNET%,%MSGATTNAME%)
  1179. say(Done!)
  1180. himsg(/:LASTMSG/)
  1181. setequal(f=%ARESP%)
  1182. return
  1183. BYECTL(Seek(Tagged.%NODE%)
  1184. IfTrue (Say(&CR&&10&You have files tagged for download!%BEEP%%BEEP%))
  1185. flushout
  1186. Say(&CR&&3&Are you sure you want to &11&disconnect&3&? &9&[   ]&14&*)
  1187. Back(4)
  1188. YesNoAsk(*)
  1189. If (%RESP%)=(No) Then Return
  1190. Display (display\goodbye)
  1191. Log(<<,User logged off normally.)
  1192. QuitBBS
  1193. PASSCTLäSay(What would you like your new password to be?&12&: &15&*)
  1194. getpass(.)
  1195. SetEqual(/PASS=%RESP%)
  1196. Log(--,Changed Password)
  1197. return
  1198. MCHATCTL╫jump(pauseprompt)
  1199. if (%MULTI%)=(TRUE) then goto (start)
  1200. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1201. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1202. say(your Sysop, %SYSOP%.&CR&)
  1203. enter
  1204. return
  1205.  
  1206. *start
  1207. setactivity (Entering Chat)
  1208. SetWho1(&7&)
  1209. SetWho2(&11&)
  1210. SetWho3(&3&)
  1211. SetWho4(&10&)
  1212. SetWho5(&15&)
  1213. display(display\chatconf)
  1214. menuask(&3&Please select a chat conference&12&: &15&*%CRON%)
  1215. if (%RESP%)=(<CR>) then return
  1216. number(%RESP%)
  1217. ifnottrue(goto (badsel))
  1218. setequal(a=%RESP%)
  1219. setequal(c=%NAME%)
  1220. setlen(c=20)
  1221. setequal(d=%FROM%)
  1222. setlen(d=21)
  1223. display(display\chatopt)
  1224. loadsub(control\macros\mwho.ctl)
  1225. menuask(&3&Nodes you would like to chat with, seperated by spaces &11&(A=All)&12&: &15&*%MIN1%%CRON%)
  1226. if (%RESP%)=(<CR>) then return
  1227. if (%RESP%)=(A) then goto (all)
  1228. setequal(b=%RESP% %NODE%)
  1229. display(display\stchat)
  1230. mChat(%var%a %var%b)
  1231. Return
  1232.  
  1233. *all
  1234. display(display\stchat)
  1235. mchat(%var%a -1)
  1236. return
  1237.  
  1238. *badsel
  1239. loadsub(control\macros\badsel.ctl)
  1240. return
  1241.  
  1242. *pauseprompt
  1243. DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1244. DefPif (s:stop,n:nonstop)
  1245. ret
  1246. MSEARCHCTLÆ
  1247. *search
  1248. Display(display\SEARCH)
  1249. lowmsg(/:lastmsg/)
  1250. setequal(n=%ARESP%)
  1251. Say(&3&Which &11&search&3& option would you like?&12&: &15&*)
  1252. *askagain
  1253. MenuKey
  1254. BigNiceSay(n:new,f:from,t:to,s:description,m:message text,q:quit,h:help)
  1255. BigIf (n:new,f:from,t:toname,s:desc,m:text,h:help3)
  1256. if (%RESP%)=(Q) then Return
  1257. flushout
  1258. goto (askagain)
  1259. *help3
  1260. display(display\help\sear,/:SEC/)
  1261. goto (search)
  1262.  
  1263. *from
  1264. clearmem
  1265. menuask (&CR&&3&Please enter the name of the person to search for&12&: &15&*)
  1266. setequal(p=%RESP%)
  1267. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  1268. say(&11&&CR&Searching...|)
  1269. seekfrom(/:LASTMSG/,%var%p,%RESP%)
  1270. log(--,Msg From Search for %var%p)
  1271. zap(seeking.%NODE%,2)
  1272. appendto(seeking.%NODE%,%var%p)
  1273. eline(20)
  1274. if (%ARESP%)=(ERROR) then Return
  1275. setequal(r=20)
  1276. setequal(u=0)
  1277. Return
  1278.  
  1279. *new
  1280. clearmem
  1281. setequal(u=0)
  1282. lowmsg(/:lastmsg/)
  1283. setequal(n=%ARESP%)
  1284. menuask (&CR&&3&Search for messages older than?&11&(Date)&12&: &15&*)
  1285. if (%RESP%)=() then setequal(/Resp=/:last/)
  1286. dateok(%RESP%)
  1287. ifnottrue(return)
  1288. setequal(p=%RESP%)
  1289. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  1290. say(&11&&CR&Searching...|)
  1291. seeknew(/:LASTMSG/,%var%p,%RESP%)
  1292. log(--,Msg New Search for %var%p)
  1293. zap(seeking.%NODE%,2)
  1294. appendto(seeking.%NODE%,%var%p)
  1295. eline(20)
  1296. if (%ARESP%)=(ERROR) then Return
  1297. setequal(r=20)
  1298. Return
  1299.  
  1300. *toname
  1301. clearmem
  1302. menuask (&CR&&3&Please enter the name of the person to search for&12&: &15&*)
  1303. setequal(p=%RESP%)
  1304. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  1305. say(&11&&CR&Searching...|)
  1306. seekto(/:LASTMSG/,%var%p,%RESP%)
  1307. log(--,Msg To Search for %var%p)
  1308. zap(seeking.%NODE%,1)
  1309. appendto(seeking.%NODE%,%var%p)
  1310. eline(20)
  1311. if (%ARESP%)=(ERROR) then Return
  1312. setequal(r=20)
  1313. setequal(u=0)
  1314. Return
  1315.  
  1316. *desc
  1317. say(&3&)
  1318. clearmem
  1319. menuask (Please enter the description you want to search for&12&: &15&*)
  1320. setequal(p=%RESP%)
  1321. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  1322. say(&CR&&11&Searching...|)
  1323. seekdesc(/:LASTMSG/,%var%p,%RESP%)
  1324. log(--,Msg Desc Search for %var%p)
  1325. zap(seeking.%NODE%,3)
  1326. appendto(seeking.%NODE%,%var%p)
  1327. eline(20)
  1328. if (%ARESP%)=(ERROR) then Return
  1329. setequal(r=20)
  1330. setequal(u=0)
  1331. Return
  1332.  
  1333. *text
  1334. clearmem
  1335. menuask (&CR&&3&Please enter the text you want to search for&12&: &15&*)
  1336. setequal(p=%RESP%)
  1337. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  1338. say(&CR&&11&Searching...|)
  1339. seektext(/:LASTMSG/,%var%p,%RESP%)
  1340. log(--,Msg Txt Search for %var%p)
  1341. zap(seeking.%NODE%,4)
  1342. appendto(seeking.%NODE%,%var%p)
  1343. eline(20)
  1344. if (%ARESP%)=(ERROR) then Return
  1345. setequal(r=20)
  1346. setequal(u=0)
  1347. Return
  1348. MREADERCTLDchkmes
  1349. clearscr
  1350. Exec(pwrmail\pwrmail.exe node%node%.inf)
  1351. Return
  1352. CNFNEWSCTL»seek(areas\news/:lastmsg/.asc)
  1353. ifnottrue(return)
  1354.  
  1355.  fDate(areas\news/:lastmsg/.asc)
  1356.  CmpDate(/:LAST/,%ARESP%)
  1357.  IfTrue(return)
  1358.  
  1359.  display(areas\news/:lastmsg/)
  1360.  
  1361. return
  1362. LISTCTLClearscr
  1363. Say(&7&Users currently registered on&15& %BBS%&CR&)
  1364. Say(&14&Name                                    Calling From)
  1365. Say(&10&-----------------------------------------------------------------)
  1366. sPause(5)
  1367. ListUsers(40,15,3)
  1368. linefeed(1)
  1369. Enter
  1370. Return ;go back to menu
  1371. MENTERCTLrIf (%MSGFNET%)=(Y) Then SetEqual(v=Y)
  1372. If (%MSGFNET%)=(Y) Then Goto (nonet)
  1373. If (%MSGNET%)=(N) Then Goto (nonet)
  1374. Say(      &3&Would you like to send this via NetMail? &9&[   ]&14&*)
  1375. Back(4)
  1376. YesNoAsk(*)
  1377. SetEqual(v=%RESP%)
  1378.         
  1379.   *nonet
  1380. NotIf (%GRAPHICS%)=(ANSI) Then Goto (STMESSG)
  1381. SetMode(Line)
  1382. Say(&CR&&3& Would you like to use the &11&full-screen&3& editor? &9&[   ]&14&*)
  1383. Back(4)
  1384. YesNoAsk(*)
  1385. If (%RESP%)=(Yes) Then SetMode(full)
  1386.  
  1387.   *stmessg
  1388. If (%FULL%)=(Yes) Then Goto (fmode)
  1389. Say(&CR&&14&You can start typing in your message now.  When you're finished with)
  1390. Say(the message, press (&11&ENTER&14&) on a blank line.&CR&&CR&&3&    (--------/---------/---------/---------/---------/---------/---------/----))
  1391. NotIf (&k)=(20) Then inittxt
  1392. If (&k)=(20) Then setmax(%var%p) ;If editing existing msg, set maxline to max in that msg
  1393. If (&k)=(20) Then Goto (stedit)
  1394. GetText(15,7,1,99)
  1395.  
  1396.   *ent
  1397. NotIf (&z)=(15) Then display (display\ENTER)
  1398. If (&z)=(15) Then display(display\REPLY)
  1399. Say(&3&What would you like to do with the message?&12&: &15&*)
  1400. MenuKey
  1401. BigNiceSay (t:Throw Away,s:Save,e:Edit,a:Add,L:List,c:Change,m:Modify,d:Delete Line,h:help)
  1402. If (&z)=(15) Then bignicesay(q:Quote)
  1403. If (&k)=(30) Then BigIf (m:modi,c:modi)
  1404. BigIf (t:abort,s:save,e:edit,L:list,a:add,m:mod,d:del,h:help)
  1405. NotIf(&z)=(15) Then BigIf(c:chg)  ;If entering a new msg, let them change user to send to
  1406. If (&z)=(15) Then BigIf(q:quote)  ;If replying let them quote...
  1407. Say(&CR&&12&Invalid selection ... Please try again.&CR&)
  1408. FlushOut
  1409. Goto (ent)
  1410.   *modi
  1411. Say(&CR&%hRed%Option not available in Comment.&CR&)
  1412. Goto (ent)
  1413.  
  1414.   *help
  1415. NotIf (&z)=(15) Then display(display\help\enter,/:SEC/)
  1416. If (&z)=(15) Then display(display\help\reply,/:SEC/)
  1417. Goto (ent)
  1418.  
  1419.   *Quote
  1420. linefeed(1)
  1421. lView(quote.%NODE%,11,3)
  1422. cMenuAsk %CRON% (&CR&&3&Enter the first line of the message you want to quote&12&: &15&*)
  1423. SetEqual(s=%RESP%)
  1424. If (%RESP%)=(<CR>) Then SetEqual(s=1)
  1425. cMenuAsk %CRON% (&3&Enter the last line of the message to quote&12&: &15&*)
  1426. SetEqual(t=%RESP%)
  1427. If (%RESP%)=(<CR>) Then SetEqual(t=%var%s)
  1428. Import (quote.%NODE%,=> ,%var%s,%var%t)  ;import text from quote.%NODE% tmp file
  1429. Goto (add)
  1430. *netImp
  1431.  
  1432.   *del
  1433. showtxtl(11,3)
  1434. cMenuAsk (&CR& &3&Please enter the first line to delete&12&: &15&*)
  1435. Number(%RESP%)
  1436. IfNotTrue (Goto (invn))
  1437. cmpval(%RESP%,%MAXLINE%)
  1438. IfNotTrue (NotIf (%RESP%)=(%MAXLINE%) Then Goto (invn))
  1439. SetEqual(e=%RESP%)
  1440. Say(&CR&&10&If you only want to delete one line, press (&11&ENTER&10&) here.)
  1441. cMenuAsk %CRON% (&3&  Please enter the last line to delete&12&: &15&*)
  1442. SetEqual(g=%RESP%)
  1443. If (&g)=(<CR>) Then SetEqual(g=%var%e)
  1444. DelLines(%var%e,%var%g)
  1445. If (%ARESP%)=(ERROR) Then Goto (invn)
  1446. Say(&CR&&11&Lines %var%e to %var%G have been deleted.)
  1447. Goto (ent)
  1448.  
  1449.   *chg
  1450. Say(&CR&  &3&Who do you want us to send the message to?&12&:&11&(                    )&15&*)
  1451. Back(21)
  1452. SetFill(%var%a)
  1453. cMenuAsk(*)
  1454. SetEqual(a=%RESP%)
  1455. SeekUser(%RESP%)
  1456. SetEqual(c=%NDNUMB%)
  1457. SetEqual(d=2)
  1458. If (%ARESP%)=(No) Then Goto (notfound)
  1459. Goto (ent)
  1460.  
  1461.   *mod
  1462. Say(&CR&&3&                 What is this message about?&12&:&11&(                    )&15&*)
  1463. Back(21)
  1464. SetFill(%var%b)
  1465. cAsk%LEN%20%(*)
  1466. SetEqual(b=%RESP%)
  1467. Goto (ent)
  1468.  
  1469.   *edit
  1470. If (%FULL%)=(Yes) Then Goto (add)
  1471. cMenuAsk (&CR&&3&Which line would you like to edit?&12&: &15&*)
  1472. Number(%RESP%)
  1473. IfNotTrue (Goto (invn))
  1474. If (%RESP%)=(%MAXLINE%) Then Goto (goedit)
  1475. linefeed(1)
  1476. cmpval(%RESP%,%MAXLINE%)
  1477. If (%ARESP%)=(No) Then Goto (Invn)
  1478.  
  1479.   *goedit
  1480. SetEqual(h=%MAXLINE%)
  1481. gettext(15,7,%RESP%,%RESP%)
  1482. setmax(%var%h)
  1483. Goto (ent)
  1484.  
  1485.   *invn
  1486. Say(&14&That line number doesn't exist in this message.  &11&Try again, please.&CR&)
  1487. Goto (ent)
  1488.  
  1489.   *add
  1490. If (%FULL%)=(Yes) Then Goto (fmode)
  1491. Say(&CR&&14&You may now continue your message.  Press (&11&ENTER&14&) to end the message.&CR&)
  1492. showtxt2(15,7)
  1493. gettext(15,7,%MAXLINE%,99)
  1494. delextra
  1495. Goto (ent)
  1496.         
  1497.   *save
  1498. SetEqual(x=)
  1499. If (&k)=(No) Then Goto (stsave)
  1500. If (&v)=(Yes) Then Goto (stsave)
  1501. If (&q)=(10) Then Goto (stsave)
  1502. Say(&CR&&3&Would you like to attach a file to this message? &9&[   ]&14&*)
  1503. Back(4)
  1504. YesNoAsk(*)
  1505. If (%RESP%)=(No) Then Goto (stsave1)
  1506. loadsub(control\EnterAtt.ctl)
  1507.  
  1508.   *stsave
  1509. InpLine(varr.%NODE%,1)
  1510. SetEqual(r=%ARESP%)
  1511.  
  1512.   *stsave1
  1513. Say(&CR&&11&Saving your message, please wait...*)
  1514. if (%Msgfpvt%)=(Y) then setequal(k=Y)
  1515. if (&z)=(15) then kill(quote.%node%)
  1516. NotIf (&z)=(15) Then writemsg(/:LASTMSG/,%var%a,%NAME%,%var%b,%var%c,%var%k,0,%var%v,%var%x)
  1517. If (&z)=(15) Then writemsg(/:LASTMSG/,%var%a,%NAME%,%var%b,%var%c,%var%k,%var%y,%var%v,%var%x)
  1518. himsg(/:LASTMSG/)
  1519. notif (&z)=(15) then log(--,Message (%ARESP%) entered in area #/:LASTMSG/)
  1520. if (&z)=(15) then log (--,Reply (%aresp%) to #%var%y entered in area #/:lastmsg/)
  1521. APPENDTO (MAILBOX\%VAR%C./:LASTMSG/,%ARESP%)
  1522. if (&z)=(15) then himsg(/:lastmsg/)
  1523. If (&z)=(15) Then SetEqual(f=%ARESP%)
  1524. If (&z)=(15) Then lowmsg(/:LASTMSG/)
  1525. If (&z)=(15) Then SetEqual(n=%ARESP%)
  1526. NotIf (&k)=(20) Then Goto (smsg)
  1527. himsg(/:LASTMSG/)
  1528. redo (/:LASTMSG/,%var%q,%ARESP%)
  1529.  
  1530.   *smsg
  1531. Say(Saved!)
  1532. Goto (abt)
  1533.         
  1534.   *list
  1535. linefeed(1)
  1536. showtxtl(11,3) ;showtxtL is the same as showtxt except shows line numbers...
  1537. linefeed(1)
  1538. enter
  1539. Goto (ent)
  1540.  
  1541.   *abort
  1542. Say(&CR&&12&Your message has been thrown away.)
  1543.  
  1544.   *abt
  1545. inittxt
  1546. SetMode(reg)
  1547. return
  1548.  
  1549.   *notfound
  1550. eline(70)
  1551. SetEqual(c=0)
  1552. Say(Their name couldn't be found.  )
  1553. Say(    &3&Would you like to send the message anyway? &9&[   ]&14&*)
  1554. Back(4)
  1555. YesNoAsk(*)
  1556. If (%RESP%)=(No) Then Goto (abt)
  1557. Goto (ent)
  1558.         
  1559.   *stedit
  1560. showtxt2(15,7) ;same as showtxtL except doesnt show last line #...
  1561. gettext(15,7,%var%p,99)
  1562. Goto (ent)
  1563.  
  1564.   *notenufs
  1565. display(display\nospce)
  1566. Goto (stsave)
  1567.         
  1568.   *aborted
  1569. SetEqual(x=)
  1570. FlushOut
  1571. Log(--,Attach upload aborted (%var%x))
  1572. Display(display\attabt)
  1573. Goto (stsave)
  1574.         
  1575.   *alreadyhere
  1576. Display (display\HERENOW)
  1577. Goto (pok)
  1578.  
  1579.   *fmode
  1580. LoadSub(control\macros\fulledit.ctl)
  1581. Goto (ent)
  1582. HPHONECTLòSay(What is your new &11&home &3&phone number?&9&: &15&)
  1583. Picture(###-###-####)
  1584. SetEqual(/PHONE=%RESP%)
  1585. Log(--,Changed Phone # to %RESP%)
  1586. return
  1587. EDITCTLzsetequal(a=%NAME%)
  1588. upcase(a)
  1589. setequal(i=%MSGFROM%)
  1590. upcase(i)
  1591. notif (&i)=(&a) then goto (inv2)
  1592. setequal(p=%MAXLINE%)
  1593. setequal(q=%var%y)
  1594. msgkill(/:LASTMSG/,%var%y)
  1595. setequal(a=%MSGTO%)
  1596. setequal(k=20)
  1597. seekuser(%var%a)
  1598. setequal(c=%NDNUMB%)
  1599. setequal(y=0)
  1600. IfNotTrue (setequal(c=0))
  1601. setequal(b=%MSGDESC%)
  1602. setequal(z=15)
  1603. loadmem(control\macros\ENTER.CTL,goto (stenter))
  1604. CITYCTL}Ask(What is your &11&City and State &3&address?&12&: &15&*)
  1605. SetEqual(/FROM=%RESP%)
  1606. Log(--,Changed From (City,St))
  1607. return
  1608. FINDCTL*UserFind
  1609.  
  1610. *Main
  1611.  Say (&CR&&15&Enter Name of User: &12&*)
  1612.  MenuAsk%MIN1%(*)
  1613. *Searching
  1614.  log (--,UserFind for:%Resp%)
  1615.  SeekUser(%RESP%)
  1616.  ifnottrue(goto (notfound))
  1617.  Loaduser (%NDNUMB%)
  1618.  enufsec (100)
  1619.  iftrue (Say (&7&Street            : &3&\:STREET\))
  1620.  Say (&7&From              : &3&\:FROM\)
  1621.  iftrue(Say (&7&Birthday          : &3&\:BIRTH\))
  1622.  iftrue(Say (&7&Phone Number      : &3&\:PHONE\))
  1623.  Say (&7&Last Date On      : &3&\:LAST\)
  1624.  Say (&7&Last Time On      : &3&\:LASTT\&CR&)
  1625.  yesnoask (&12&Search For Another User (Y/N)? &15&*)
  1626.  If (%RESP%)=(Yes) then goto (main)
  1627. return
  1628.  
  1629. *NotFound
  1630.  Say (&4&User Not Found in User File!)
  1631.  Enter
  1632.  return
  1633.  
  1634. *NotEnufSec
  1635.  Say (&12&Sorry, but your security is not high enough to access this command.&CR&)
  1636.  Enter
  1637.  return
  1638. NEWBULLCTLCsay(&15&&CR&Please Wait!... &14&Searching for bulletins updated since your last logon...)
  1639. newbulletins(display\bull)
  1640. notif (%ARESP%)=(NONE) then view (updated.%NODE%)
  1641. if (%ARESP%)=(NONE) then goto (nobul)
  1642. return
  1643.         
  1644.         *nobul
  1645. say(&10&None of the bulletins have been updated since your last call.)
  1646. return
  1647. FLISTCTLÿsetequal(y=5)
  1648. clearscr
  1649. setequal(k=1)
  1650. if (%CD%)=(No) then display(%FILPATH%header)
  1651. if (%CD%)=(Yes) then display(%CDPath%/:lastdown/\header)
  1652. if (%Y%)=(25) then goto (blist)
  1653. if (%Y%)=(23) then goto (blist)
  1654. spause(%y%)
  1655.         
  1656.         *blist
  1657. jump(pauseprompt1)
  1658. if (%CD%)=(No) then fdisp(%FILPATH%files.bbs,12,15,7,11,3,%var%k)
  1659. if (%CD%)=(Yes) then fdisp(%CDPath%/:lastdown/\files.bbs,12,15,7,11,3,%var%k)
  1660. spause(1)
  1661. if (%ARESP%)=(No) then goto (err)
  1662. say(&11&&CR& ══ &14&End of File Area Listing&11& ══&CR&)
  1663. jump(pauseprompt)
  1664. enter
  1665. Return
  1666.         *fhlp
  1667. jump(pauseprompt)
  1668. setequal(k=%ARESP%)
  1669. display(display\help\lst,/:SEC/)
  1670. goto (blist2)
  1671.  
  1672.         *err
  1673. jump(pauseprompt)
  1674. display(display\NOFILES)
  1675. enter
  1676. Return
  1677.         
  1678. *view2
  1679. setequal(k=%ARESP%)
  1680. loadsub(control\macros\zview.ctl)
  1681. goto (blist2)
  1682. *tag2
  1683. setequal(k=%ARESP%)
  1684. loadsub(control\macros\tfiles.ctl)
  1685. goto (blist2)
  1686. *down2
  1687. setequal(k=%ARESP%)
  1688. loadsub(control\macros\down.ctl)
  1689. selfarea(/:Lastdown/)
  1690. goto (blist2)
  1691. *blist2
  1692. spause(0)
  1693. clearscr
  1694. goto (blist)
  1695.  
  1696. *Pauseprompt1
  1697. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  1698. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  1699. ret
  1700.  
  1701. *Pauseprompt
  1702. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1703. defPif(s:stop,n:nonstop)
  1704. ret
  1705. LTAGGEDCTL┘Seek(tagged.%NODE%)
  1706. IfNotTrue (Goto (none))
  1707. Say(&CR&&15&Files currently tagged:&CR&)
  1708. Lview(tagged.%NODE%,10,7)
  1709. linefeed(1)
  1710. Enter
  1711. Return
  1712. *none
  1713. Say(&CR&&11&No files are tagged at this time.&CR&)
  1714. enter
  1715. Return
  1716. MWHOCTLrif (%MULTI%)=(TRUE) then goto (start)
  1717. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1718. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1719. say(your Sysop, %SYSOP%.&CR&)
  1720. enter
  1721. return
  1722. *start
  1723. Seek(%CPAT%whoison.dat)
  1724. If (%ARESP%)=(No) Then return
  1725. linefeed(1)
  1726. setequal(w=0)
  1727. size(%CPAT%whoison.dat)
  1728. display(display\who)
  1729. divvar(%ARESP%/131=y)
  1730. do
  1731. inc(w)
  1732. nodestat(%var%w)
  1733. say(&11&%var%w&15&    %NAVAIL%&7&  %NNAME% %NFROM% %NBAUD%%hRed%%NACTIVITY%)
  1734. If (&w)=(&y) then goto (ewho)
  1735. loop
  1736.  
  1737.         *ewho
  1738. say()
  1739. Enter
  1740. Return
  1741. SHELLCTLÆ clearscr
  1742.  If (%LOCAL%)=(TRUE) then goto (locshell)
  1743.  Exec (dos %PORT%)
  1744. return
  1745.  
  1746. *locshell
  1747.  Log(--,%NAME% Shelled to DOS) 
  1748.  Exec ()
  1749. return
  1750. VIEWLOGSCTL menuask%cron%(&CR&&3&Please enter the text/date to search for &11&(Enter=%DATE%)&12&: &15&*)
  1751. if (%RESP%)=(<CR>) then setequal(/resp=%DATE%)
  1752. clearscr
  1753. say(&13&Searching Callers Log . . .)
  1754. say(&7&)
  1755. closecall
  1756. searchdisp(%CALLSLOG%,%Resp%)
  1757. opencalle
  1758. enter
  1759. return
  1760. SEARCHMCTLQhimsg(/:LASTMSG/)
  1761. setequal(f=%ARESP%)
  1762. loadmem(control\READ.CTL,goto (search))
  1763. NODEDOWNCTL╓if (%MULTI%)=(TRUE) then goto (start)
  1764. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1765. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1766. say(your Sysop, %SYSOP%.&CR&)
  1767. enter
  1768. return
  1769. *start
  1770. loadsub(control\macros\mwho.ctl)
  1771. menuask%cron%(&CR&&3&Please enter the number of the &11&node &3&to shut down&12&: &15&*)
  1772. if (%resp%)=(<CR>) then return
  1773. nodedown(%resp%)
  1774. return
  1775. VIEWNODECTL}if (%MULTI%)=(TRUE) then goto (start)
  1776. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1777. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1778. say(your Sysop, %SYSOP%.&CR&)
  1779. enter
  1780. return
  1781. *start
  1782. loadsub(control\macros\mwho.ctl)
  1783. menuask%cron%(&CR&&3&Please enter the number of the &11&node &3&to view&12&: &15&*)
  1784. if (%resp%)=(<CR>) then return
  1785. getscreen(%resp%)
  1786. say(&CR&&14&Please wait while screen is being retrived... this process may take a)
  1787. say(while.  Please wait at the following prompt until the screen arrives.&CR&)
  1788. enter
  1789. return
  1790. KILLNODECTL╫if (%MULTI%)=(TRUE) then goto (start)
  1791. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  1792. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  1793. say(your Sysop, %SYSOP%.&CR&)
  1794. enter
  1795. return
  1796. *start
  1797. loadsub(control\macros\mwho.ctl)
  1798. menuask%cron%(&CR&&3&Please enter the number of the &11&node &3&to disconnect&12&: &15&*)
  1799. if (%resp%)=(<CR>) then return
  1800. killnode(%resp%)
  1801. return
  1802. DELTAGCTL░seek(tagged2.%node%)
  1803. ifnottrue(goto (notag))
  1804. loadsub(control\macros\ltagged.ctl)
  1805. Say(&CR&&3&Are you sure you want to &11&delete&3& the tagged file list? &9&[   ]&14&*)
  1806. Back(4)
  1807. YesNoAsk(*)
  1808. If (%RESP%)=(No) Then Return
  1809. Say(&CR&&14&Deleting...*)
  1810. Kill(tagged2.%NODE%,tagged.%NODE%,free.%NODE%)
  1811. Say( |)
  1812. Say(&15&Deleted!   &CR&)
  1813. Enter
  1814. Return
  1815. *notag
  1816. say(&CR&&12&You don't have any tagged files!)
  1817. linefeed(1)
  1818. enter
  1819. return
  1820. TFILESCTL╣jump(pauseprompt)
  1821. say()
  1822. *fname
  1823. say(&3&Please enter the name of the file to tag&12&: &14&(            )&15&*)
  1824. back(13)
  1825. menuask%nocr%%CRON%%LEN12%(*)
  1826. if (%RESP%)=(<CR>) then goto (ret)
  1827. seek(tagged.%NODE%)
  1828. setequal(v=%aresp%)
  1829. *stseek
  1830. adddef(.%DEFEXT%)
  1831. setequal(p=%RESP%)
  1832. seekfall(%var%p)
  1833. If (%ARESP%)=(INVALID) then goto (invfn)
  1834. if (%ARESP%)=(No) then goto (nothere)
  1835. If (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  1836. say()
  1837. selfarea(%aresp%)
  1838. if (&v)=(Yes) then goto (sometagged)
  1839. *doAdd
  1840. AppendTo(tagged2.%NODE%,%FILPATH%%var%p)
  1841. AppendTo(tagged.%NODE%,%var%p)
  1842. AppendTo(free.%NODE%,%FREE%)
  1843. selfarea(/:lastdown/)
  1844. Say(&CR&&14&%var%p&15& has been tagged.&CR&)
  1845. Enter
  1846. goto (fname)
  1847.         *sometagged
  1848. seekfile(tagged.%NODE%,%RESP%)
  1849. setequal(p=%RESP%)
  1850. ifnottrue (goto (doadd))
  1851. say(&CR&&CR&&15&%RESP% &7&has been found in your tagged files list.)
  1852. lview(tagged.%NODE%,10,7)
  1853. say(&CR&&3&Do you still want to tag this file? &9&[   ]&14&*)
  1854. back(4)
  1855. yesnoask()
  1856. say()
  1857. if (%resp%)=(No) then goto (fname)
  1858. goto (doAdd)
  1859.  
  1860.         *invfn
  1861. Display(Display\INVALID)
  1862. flushout
  1863. selfarea(/:LASTDOWN/)
  1864. Enter
  1865. goto (fname)
  1866.         *notenuf
  1867. Display (Display\fbadsec)
  1868. selfarea(/:LASTDOWN/)
  1869. return        
  1870.         *NotHere
  1871. selfarea(/:lastdown/)
  1872. Display(Display\notfnd)
  1873. goto (fname)
  1874.  
  1875. *ret
  1876. say()
  1877. return
  1878.  
  1879. *pauseprompt
  1880. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1881. defPif(s:stop,n:nonstop)
  1882. ret
  1883. WSEARCHCTLósetequal(f=%maxfarea%) ;this is the max area to search
  1884. setequal(g=1)
  1885. display(display\wsearch)
  1886. say(&3&Please file to search for &11&(Wildcards are valid)&12&: &14&(            )&15&*)
  1887. back(13)
  1888. setequal(y=20)
  1889. menuask%CRON%%LEN12%(*)
  1890. if (%RESP%)=(<CR>) then Return
  1891. find(%resp%,.)
  1892. ifnottrue(combine(%resp%+.*=e))
  1893. ifnottrue(setequal(/resp=%var%e))
  1894. setequal(n=%RESP%)
  1895. loadsub(control\selfilea.ctl)
  1896. log(--,Wildcard Search for: %var%n)
  1897. jump(pauseprompt1)
  1898. clearscr
  1899. say(&11&(Spacebar) Aborts.  &14&Searching file database for "%var%n". . .&CR&)
  1900. spause(3)
  1901. *stsearch
  1902. selfarea(%var%g)
  1903. eline(79)
  1904. enufsec(%FILSEC%)
  1905. ifNotTrue (goto (skcheck))
  1906. *csearch
  1907. say(&7&Searching file area: %FILNAME%|)
  1908. if (%CD%)=(No) then wsearch(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1)
  1909. if (%CD%)=(Yes) then wsearch(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1)
  1910. ifTrue (goto (enew))
  1911. ifkey( )
  1912. ifTrue (goto (enew)) ;did user hit stop?
  1913. localkey(1)
  1914. notif (%ARESP%)=(No) then goto (enew)
  1915. *skcheck
  1916. if (&g)=(&f) then goto (enew)
  1917. inc(g)
  1918. goto (stsearch)
  1919.  
  1920. *enew
  1921. eline(79)
  1922. selfarea(/:LASTDOWN/)
  1923. setequal(k=0)
  1924. jump(pauseprompt)
  1925. display(display\sdone)
  1926. Return
  1927. *view2
  1928. setequal(k=%ARESP%)
  1929. loadsub(control\macros\zview.ctl)
  1930. goto (blist2)
  1931. *tag2
  1932. setequal(k=%ARESP%)
  1933. loadsub(control\macros\tfiles.ctl)
  1934. goto (blist2)
  1935. *down2
  1936. setequal(k=%ARESP%)
  1937. loadsub(control\macros\down.ctl)
  1938. selfarea(/:Lastdown/)
  1939. goto (blist2)
  1940. *blist2
  1941. spause(0)
  1942. clearscr
  1943. goto (stsearch)
  1944.         *fhlp
  1945. jump(pauseprompt)
  1946. setequal(k=%ARESP%)
  1947. display(display\help\lst,/:SEC/)
  1948. goto (blist2)
  1949.  
  1950. *Pauseprompt
  1951. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1952. defPif(s:stop,n:nonstop)
  1953. ret
  1954.  
  1955. *Pauseprompt1
  1956. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  1957. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  1958. ret
  1959. REPLYCTL║setequal(k=0)
  1960. capture(quote.%NODE%)
  1961. inittxt
  1962. setequal(a=%MSGFROM%)
  1963. setequal(b=%MSGDESC%)
  1964. fcomma(b)
  1965. fcomma(a)
  1966. setequal(z=15)
  1967. seekuser(%var%a)
  1968. setequal(c=%NDNUMB%)
  1969.  
  1970. IfNotTrue (setequal(c=0))
  1971. if (%AREAPVT%)=(N) then goto (stenter1)
  1972. if (%AREAFPVT%)=(Y) then goto (stenter1)
  1973. say(&3&Would you like to make this a private message? &9&[   ]&14&*)
  1974. back(4)
  1975. yesnoask(*)
  1976. setequal(k=%RESP%)
  1977. *stenter1
  1978. loadmem(control\macros\menter.ctl)
  1979. MCOPYCTLÑcMenuAsk(&CR&&3&Enter message number to copy&12&: &15&*)
  1980. inittxt
  1981. GetMail(%RESP%,/:LASTMSG/,1)
  1982. cMenuAsk(&CR&&3&Copy to which area?&12&: &15&*)
  1983. If (%MSGPVT%)=(PRIVATE) Then SetEqual(k=Yes)
  1984. NotIf (%MSGPVT%)=(PRIVATE) Then SetEqual(k=No)
  1985. setequal(a=%msgfrom%)
  1986. fcomma(a)
  1987. setequal(b=%msgto%)
  1988. fcomma(b)
  1989. setequal(c=%msgdesc%)
  1990. fcomma(c)
  1991. WriteMsg(%RESP%,%var%b,%var%a,%var%c,00,%var%k,0,%MSGNET%,%MSGATTNAME%)
  1992. Return
  1993. ABANDCTLif (/lastmsg)=(1) then goto (already)
  1994. say(&CR&&11&%areaname% &2&Conference abandoned!&CR&)
  1995. enter
  1996. setequal(/resp=1)
  1997. loadmem(control\macros\chg.ctl,goto (sela))
  1998. *already
  1999. say(&CR&&12&You are already in the main conference &11&(%areaname%)&CR&)
  2000. enter
  2001. return
  2002. DEFPROTCTL╢Display (Display\defprots)
  2003. MenuAsk (&3&Which protocol would you like (or N for None)?%hRed%: &15&*)
  2004. SetEqual(/protocol=%RESP%)
  2005. Log(--,Changed Default Protocol to %RESP%)
  2006. return
  2007. SCRLENCTLôMenuAsk (&3&Please enter the new length for your screen&12&: &15&*)
  2008. SetEqual(/screenlen=%RESP%)
  2009. Log(--,Changed Screen Length to %RESP%)
  2010. return
  2011. NEWCTLsetequal(f=%maxfarea%) ;this sets the max area to search...
  2012. setequal(g=1)
  2013. say(&CR&&11&You last checked for new files on &12&/:LASTCHK/&11&. Please enter the date to start)
  2014. say(the search at or press (&14&ENTER&11&) to start at &12&/:LASTCHK/.)
  2015. setequal(y=15)
  2016. *askagain
  2017. say(&CR&&3&Please enter the date to start at&12&: &11&(        )&15&*)
  2018. back(9)
  2019. SetFill(/:lastchk/)
  2020. menuask%CRON%%LEN8%(*)
  2021. setequal(n=%RESP%)
  2022. if (%RESP%)=(<CR>) then setequal(n=/:LASTCHK/)
  2023. dateok(%var%n)
  2024. if (%ARESP%)=(No) then goto (invdate)
  2025. loadsub(control\selfilea.ctl)
  2026. clearscr
  2027. jump(pauseprompt1)
  2028. say(&11&(Spacebar) Aborts.  &14&Searching file database for "%var%n". . .&CR&)
  2029. log(--,New Files Scan (%var%n))
  2030. spause(3)
  2031. *stsearch
  2032. selfarea(%var%g)
  2033. enufsec(%FILSEC%)
  2034. if (%ARESP%)=(No) then goto (skcheck)
  2035. *cnew
  2036. eline(79)
  2037. say(&7&Searching file area: %FILNAME%|)
  2038. if (%CD%)=(No) then new(%FILPATH%files.bbs,12,15,7,11,3,%var%n)
  2039. if (%CD%)=(Yes) then new (%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n)
  2040. iftrue (goto (enew))
  2041. ifkey( )
  2042. ifTrue (goto (enew)) ;did user hit stop?
  2043. localkey(1)
  2044. notif (%ARESP%)=(No) then goto (enew)
  2045. *skcheck
  2046. if (&g)=(&f) then goto (enew)
  2047. inc(g)
  2048. goto (stsearch)
  2049.  
  2050. *enew
  2051. eline(79)
  2052. selfarea(/:LASTDOWN/)
  2053. jump(pauseprompt)
  2054. setequal(/LASTCHK=%DATE%)
  2055. setequal(k=0)
  2056. display(display\newdone)
  2057. Return
  2058.  
  2059. *invdate
  2060. display(display\INVDATE)
  2061. goto (askagain)
  2062. *view2
  2063. setequal(k=%ARESP%)
  2064. loadsub(control\macros\zview.ctl)
  2065. goto (blist2)
  2066. *tag2
  2067. setequal(k=%ARESP%)
  2068. loadsub(control\macros\tfiles.ctl)
  2069. goto (blist2)
  2070. *down2
  2071. setequal(k=%ARESP%)
  2072. loadsub(control\macros\down.ctl)
  2073. selfarea(/:Lastdown/)
  2074. goto (blist2)
  2075. *blist2
  2076. spause(0)
  2077. clearscr
  2078. goto (cnew)
  2079.  
  2080.         *fhlp
  2081. jump(pauseprompt)
  2082. setequal(k=%ARESP%)
  2083. display(display\help\lst,/:SEC/)
  2084. goto (blist2)
  2085.  
  2086. *Pauseprompt1
  2087. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  2088. defPif(s:stop,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  2089. ret
  2090.  
  2091. *Pauseprompt
  2092. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2093. defPif(s:stop,n:nonstop)
  2094. ret
  2095. GRAPHCTL╧Say (&CR&&3&Would you like &12&ANSI&3&/Color graphics? &9&[   ]&14&*)
  2096. Back(4)
  2097. YesNoAsk(*)
  2098. SetEqual(/graphics=ANSI)
  2099. If (%RESP%)=(No) Then SetEqual(/graphics=ASCII)
  2100. Log(--,Changed Graphics Mode)
  2101. return
  2102. ZVIEWCTLBjump(pauseprompt)
  2103.         *sv
  2104. Display(display\VIEWZ)
  2105. Say(&3&Please enter the name of the file to view&12&: &14&(            )&15&*)
  2106. Back(13)
  2107. MenuAsk%nocr%%CRON%%LEN12%(*)
  2108. if (%RESP%)=(<CR>) then goto (ret)
  2109. AddDef(.%DEFEXT%)
  2110. SeekFall(%RESP%)
  2111. If (%ARESP%)=(INVALID) Then goto (invfn)
  2112. if (%ARESP%)=(No) then goto (nothere)
  2113. If (%ARESP%)=(NOT ENOUGH) Then goto (notenuf)
  2114. SelFarea(%ARESP%)
  2115. Kill(ZipInfo.txt)
  2116. Say(&CR&&CR&&15&Reading the archive file, Please Wait!)
  2117. setequal(e=%RESP%)
  2118. seek(zipview.bat)
  2119. ifnottrue(goto (intview))
  2120. Exec(ZipView.bat %FILPATH%%var%e)
  2121. *stview
  2122. Seek(zipinfo.txt)
  2123. IfNotTrue (goto (cont))
  2124. inpopen(zipinfo.txt)
  2125. do
  2126. inpread
  2127. get (%ARESP%,1,7)
  2128. notif (%ARESP%)=() then if (%ARESP%)=( Length) then loadmem (control\zipview.ctl)
  2129. eofloop
  2130.  
  2131. *odisp
  2132. inpclose
  2133. view (zipinfo.txt)
  2134. goto (cont)
  2135.  
  2136.         *cont
  2137. linefeed(1)
  2138. Enter
  2139. SelFarea(/:LASTDOWN/)
  2140. Return
  2141.  
  2142.   *badsel
  2143. LoadSub(control\macros\badsel.ctl)
  2144. Return
  2145.  
  2146.   *invfn
  2147. Display(Display\INVALID)
  2148. FlushOut
  2149. SelFarea(/:LASTDOWN/)
  2150. Enter
  2151. Return
  2152.  
  2153.   *nothere
  2154. Display(display\notfnd)
  2155. SelFarea(/:LASTDOWN/)
  2156. Return
  2157.  
  2158.   *Notenuf
  2159. Say(&CR&)
  2160. Display (display\fbadsel)
  2161. SelFarea(/:LASTDOWN/)
  2162. Return
  2163.         *invfn
  2164. Display(Display\INVALID)
  2165. flushout
  2166. selfarea(/:LASTDOWN/)
  2167. Enter
  2168. goto (fname)
  2169.         *notenuf
  2170. Display (Display\fbadsec)
  2171. selfarea(/:LASTDOWN/)
  2172. return        
  2173.         *NotHere
  2174. Display(Display\notfnd)
  2175. goto (fname)
  2176.  
  2177. *ret
  2178. linefeed(1)
  2179. return
  2180. *intview
  2181. len(%var%e)
  2182. upcase(e)
  2183. addvar(%aresp%+-2=f)
  2184. get(&e,%var%f,3)
  2185. if (%aresp%)=(ZIP) then goto (ZIP)
  2186. exec(av %FILPATH%%var%e >zipinfo.txt,)
  2187. view(zipinfo.txt)
  2188. goto (cont)
  2189.  
  2190. *zip
  2191. exec(pkzip -v %FILPATH%%var%e >zipinfo.txt,)
  2192. goto (stview)
  2193.  
  2194. *pauseprompt
  2195. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2196. DefPif(s:stop,n:nonstop)
  2197. ret
  2198. COMMENTCTLäif (%EXPERT%)=(Y) then goto (stc)
  2199. display(display\comment)
  2200. *stc
  2201. SetEqual(o=/:LASTMSG/)
  2202. say(&3&Would you like to leave&11& %SYSOP%&3& a comment?&9& [   ]&14&*)
  2203. back(4)
  2204. yesnoask(*)
  2205. if (%RESP%)=(No) then return
  2206. Zap(lconf.%NODE%,/:lastmsg/)
  2207. If (&q)=(10) Then goto (lve)
  2208. setequal(t=%RESP%)
  2209. Say(&CR&&3&What is this comment about?&12&:&11&(                 )&15&*)
  2210. Back(18)
  2211. SetFill(Question)
  2212. cAsk%CRON%%LEN17%(*)
  2213. if (%RESP%)=(<CR>) then Return
  2214. SetEqual(b=%RESP%)
  2215. SetActivity(Leaving comment...)
  2216. Log(--,Leaving (%var%t) Comment Re: %RESP%)
  2217. linefeed(1)
  2218.         
  2219.         *lve
  2220. setequal(a=%sysop%)
  2221. SeekUser(%var%a)
  2222. SetEqual(c=%NDNUMB%)
  2223. SetEqual(o=/:LASTMSG/)
  2224. SetEqual(/lastmsg=1)
  2225. SelArea(1)
  2226. SetEqual(y=0)
  2227. If (%ARESP%)=(No) Then SetEqual(c=0)
  2228. InitTxt
  2229. SetEqual(k=30)
  2230. LoadSub(control\macros\menter.ctl)
  2231. InpLine(lconf.%NODE%,1)
  2232. SetEqual(/lastmsg=%ARESP%)
  2233. SelArea(%ARESP%)
  2234. Return
  2235. FREADCTLπif (%EXPERT%)=(Y) then goto(fname)
  2236. display(display\READF)
  2237. *fname
  2238. say(&3&Please enter the name of the file to read&12&: &14&(            )&15&*)
  2239. back(13)
  2240. menuask%nocr%%CRON%%LEN12%(*)
  2241. if (%RESP%)=(<CR>) then goto (ret)
  2242. adddef(.%DEFEXT%)
  2243. seekfall(%RESP%)
  2244. if (%ARESP%)=(INVALID) then goto (invfn)
  2245. if (%ARESP%)=(No) then goto (nothere)
  2246. if (%ARESP%)=(NOT ENOUGH) then goto (notenuf)
  2247. selFarea(%ARESP%)
  2248. linefeed(1)
  2249. view(%FILPATH%%RESP%)
  2250. selfarea(/:LASTDOWN/)
  2251. enter
  2252. Return
  2253.         *invfn
  2254. Display(Display\INVALID)
  2255. flushout
  2256. selfarea(/:LASTDOWN/)
  2257. Enter
  2258. goto (fname)
  2259.         *NotHere
  2260. Display(Display\notfnd)
  2261. goto (fname)
  2262.         *notenuf
  2263. Display (Display\fbadsec)
  2264. selfarea(/:LASTDOWN/)
  2265. return
  2266. *ret
  2267. linefeed(1)
  2268. return
  2269. CHANGECTLpif (%EXPERT%)=(Y) then goto(bkh)
  2270. *dspo
  2271. NotIf (/SEC)=(100) then display(%FAREA%)
  2272. If (/SEC)=(100) then goto (sysv)
  2273. *bkh
  2274. MenuAsk%CRON%(&CR&&3&Which file area would you like&11&(ENTER=Quit,?=Redisplay)&3&?&12&: &15&*)
  2275. If (%RESP%)=(<CR>) then Return
  2276. If (%RESP%)=(?) then goto(dspo)
  2277.  CmpValo(%MAXFAREA%,%RESP%)
  2278.  IfTrue(goto (bds))
  2279.  SelFarea(%RESP%)
  2280.  CmpVal(%sec%,%FILSEC%)
  2281.  IfTrue(goto (nofs))
  2282.  SetEqual(/LASTDOWN=%RESP%)
  2283.  Display(%FILPATH%welc)
  2284.  Say(&CR&&11&Area #%RESP%: &15&%FILNAME% &11&is now selected!&CR&)
  2285.  Say(&3&Would you like to list this area? &9&[   ]&14&*)
  2286.  Back(4)
  2287.  YesNoAsk()
  2288.  If (%RESP%)=(Yes) Then loadsub(control\macros\flist.ctl)
  2289. Return
  2290. *bds
  2291. loadsub(control\macros\badsel.ctl)
  2292. Return
  2293. *nofs
  2294. display(display\NOFSEC)
  2295. selfarea(/:lastdown/)
  2296. return
  2297.  
  2298. *sysv
  2299. seek(%FAREA%.100)
  2300. iftrue(view(%FAREA%.100))
  2301. ifnottrue(display(%FAREA%))
  2302. goto (bkh)
  2303. ENTERCTL^
  2304.   *enter
  2305. setequal(k=0)
  2306. setequal(y=0)
  2307. setequal(d=1)
  2308. say(&15&)
  2309. setactivity(Message Entry)
  2310. inittxt
  2311. if (%AREAFPVT%)=(N) then say(Enter '&11&ALL&15&' to send to everyone; *)
  2312. say(Enter '&11&?&15&' to list all users on the BBS.)
  2313. cMenuAsk %NOCR%%CRON% (&CR&    &3&Who do you want us to send the message to?&12&: &15&*)
  2314. if (%RESP%)=(SYSOP) then goto (sysn)
  2315. *bk1
  2316. if (%resp%)=(<CR>) then linefeed(1)
  2317. if (%RESP%)=(<CR>) then Return
  2318. setequal(a=%RESP%)
  2319. setequal(c=0)
  2320. if (%RESP%)=(ALL) then if (%AREAFPVT%)=(N) then goto (back)
  2321. if (%RESP%)=(ALL) then goto (nall)
  2322. if (%RESP%)=(?) then goto (lusers)
  2323. setequal(g=%NAME%)
  2324. upcase(g)
  2325. seekfile(bad.to,%VAR%G;%RESP%)
  2326. iftrue(return)
  2327. seekuser(%RESP%)
  2328. setequal(c=%NDNUMB%)
  2329. ifnottrue(goto (notfound))
  2330.  
  2331.   *back
  2332. cAsk %CRON% (&CR&&3&                   What is this message about?&12&: &15&*)
  2333. if (%RESP%)=(<CR>) then Return
  2334. setequal(b=%RESP%)
  2335.  
  2336.   *stenter
  2337. if (%AREAPVT%)=(N) then goto (stenter1)
  2338. if (%AREAFPVT%)=(Y) then goto (stenter1)
  2339. say(&3&Would you like to make this a private message? &9&[   ]&14&*)
  2340. back(4)
  2341. yesnoask(*)
  2342. setequal(k=%RESP%)
  2343.         
  2344.   *stenter1
  2345. loadmem(control\macros\menter.ctl)
  2346.  
  2347. *nall
  2348. say(&CR&&CR&&12&Messages cannot be sent to "ALL" in a private mail area.&CR&)
  2349. enter
  2350. return
  2351.  
  2352.   *notfound
  2353. say(&CR&&14&Their name couldn't be found.  )
  2354. setequal(c=0)
  2355. say(    &3&Would you like to send the message anyway? &9&[   ]&14&*)
  2356. back(4)
  2357. yesnoask(*)
  2358. if (%RESP%)=(No) then return
  2359. goto (back)
  2360.  
  2361.   *lusers
  2362. loadsub(control\macros\list.ctl)
  2363. goto (Enter)
  2364.  
  2365.   *sysn
  2366. len(%UARESP%)
  2367. back(%ARESP%)
  2368. setequal(/resp=%SYSOP%)
  2369. say(%SYSOP%*)
  2370. goto (bk1)
  2371. PAGECTLssetequal(a=/:CHATREQ/)
  2372. inc(a)
  2373. setequal(/chatreq=%var%a)
  2374. say(&14&&CR&Paging %SYSOP% for a chat, one moment please...*)
  2375. checkhours
  2376. if (%ARESP%)=(No) then goto (badhours)
  2377. if (%CHAT%)=(No) then goto (notHere)
  2378. seek(psys.%node%)
  2379. iftrue(goto (psys))
  2380. *beginPage
  2381. appendto(psys.%node%,)
  2382. setequal(n=OK)
  2383. savescreen(scr1.%NODE%)
  2384. inpopen (pagebell.dat)
  2385. localwrite(1,1,7,1,┌──────────────────────────────────────────────────────────────────────────────┐)
  2386. localwrite(1,2,7,1,│                                                                              │)
  2387. localwrite(1,3,7,1,└──────────────────────────────────────────────────────────────────────────────┘)
  2388. localwrite(2,2,14,1,        Paging SysOp ... Press (SPACE) to accept; (ESC) to toggle page        )
  2389. if (%ARESP%)=(ERROR) then goto (nothere)
  2390. setequal(h=0)
  2391.  
  2392. do
  2393. if (&n)=(PROB) then goto (absound)
  2394. inpread
  2395. sound (%ARESP%)
  2396.  
  2397.         *absound
  2398. localkey(1)
  2399. if (%ARESP%)=( ) then goto (spacehit)
  2400. if (%aresp%)=() then goto (tpg)
  2401. eofloop
  2402.  
  2403.         *nothere
  2404. restscreen(scr1.%NODE%)
  2405. inpclose
  2406. requested (Chat Requested)
  2407. display (display\page)
  2408. log(--,Chat with Sysop Requested)
  2409. loadsub(control\macros\comment.ctl,goto (stc))
  2410. return
  2411.  
  2412.         *spacehit
  2413. restscreen(scr1.%NODE%)
  2414. linefeed(1)
  2415. kill(psys.%node%)
  2416. inpclose
  2417. norest ;dont restore the screen when chat ends!
  2418. sysopchat
  2419. return
  2420.  
  2421.         *badhours
  2422. requested (Chat Requested)
  2423. display (display\hours)
  2424. log(--,Chat with Sysop Requested)
  2425. loadsub(control\macros\comment.ctl,goto (stc))
  2426. return
  2427.  
  2428. *tpg
  2429. tpage ;toggle page
  2430. goto (nothere)
  2431.  
  2432. *psys
  2433. lines(psys.%node%)
  2434. notif (%aresp%)=(3) then goto (beginpage)
  2435. goto (nothere)
  2436. SEARCHCTL8setequal(f=%maxfarea%) ; max area to search...
  2437. setequal(g=1)
  2438. display(display\fsearch)
  2439. setequal(y=20)
  2440. menuask %CRON%(&3&Please enter text to search for&12&: &15&*)
  2441. if (%RESP%)=(<CR>) then Return
  2442. setequal(n=%RESP%)
  2443. loadsub(control\selfilea.ctl)
  2444. log(--,Search (Files) for: %var%n)
  2445. jump(pauseprompt1)
  2446. clearscr
  2447. say(&11&(Spacebar) Aborts.  &14&Searching file database for "%var%n". . .&CR&)
  2448. spause(5)
  2449. *stsearch
  2450. selfarea(%var%g)
  2451. eline(79)
  2452. enufsec(%FILSEC%)
  2453. IfNotTrue(goto (skcheck))
  2454. *csearch
  2455. say(&7&Searching file area: %FILNAME%|)
  2456. if (%CD%)=(No) then fsearch(%FILPATH%files.bbs,12,15,7,11,3,%var%n,1,1)
  2457. if (%CD%)=(Yes) then fsearch(%CDPath%%filarea%\files.bbs,12,15,7,11,3,%var%n,1,1)
  2458. iftrue(goto (enew))
  2459. ifkey( )
  2460. if (%ARESP%)=(Yes) then goto (enew) ;did user hit stop?
  2461. localkey(1)
  2462. notif (%ARESP%)=(No) then goto (enew) ;did SYSOP hit stop?
  2463. *skcheck
  2464. if (&g)=(&f) then goto (enew)
  2465. inc(g)
  2466. goto (stsearch)
  2467.  
  2468. *enew
  2469. eline(79)
  2470. selfarea(/:LASTDOWN/)
  2471. setequal(k=0)
  2472. linefeed(1)
  2473. jump(pauseprompt)
  2474. display(display\sdone)
  2475. Return
  2476.  
  2477. *view2
  2478. setequal(k=%ARESP%)
  2479. loadsub(control\macros\zview.ctl)
  2480. goto (blist2)
  2481. *tag2
  2482. setequal(k=%ARESP%)
  2483. loadsub(control\macros\tfiles.ctl)
  2484. goto (blist2)
  2485. *down2
  2486. setequal(k=%ARESP%)
  2487. loadsub(control\macros\down.ctl)
  2488. selfarea(/:Lastdown/)
  2489. goto (blist2)
  2490. *blist2
  2491. spause(0)
  2492. clearscr
  2493. goto (stsearch)
  2494.         *fhlp
  2495. jump(pauseprompt)
  2496. setequal(k=%ARESP%)
  2497. display(display\help\lst,/:SEC/)
  2498. goto (blist2)
  2499.  
  2500. *Pauseprompt1
  2501. defpause($7$&0&[More?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop, (&11&V&3&)iew, (&11&D&3&)ownload, (&11&T&3&)ag, (&11&H&3&)elp or (&11&C&3&)ontinue?&12&: &7&)
  2502. defPif(s:enew,n:nonstop,v:view2,h:fhlp,t:tag2,d:down2)
  2503. ret
  2504.  
  2505. *Pauseprompt
  2506. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2507. defPif(s:stop,n:nonstop)
  2508. ret
  2509.